当前位置:  开发笔记 > 编程语言 > 正文

mod_rewrite正则表达式仅在某个字符串不存在时才匹配

如何解决《mod_rewrite正则表达式仅在某个字符串不存在时才匹配》经验,为你挑选了2个好方法。

通过我的服务器日志看,我看到了很多我的网站上的网页请求favicon.ico,favicon.jpg,favicon.png,等在各种不同的目录中.

我没有浏览每个页面以试图找出每个不正确的请求来自何处,而是编写了一些apache重定向规则来更改任何包含"favicon"重定向到的URL的请求/favicon.ico

我最初的天真尝试是这样的:

RewriteRule favicon /favicon.ico [R=301,L]

但这意味着,当您实际请求时,/favicon.ico它会将您发送到无限重定向循环.

基本上我认为我需要的是具有这种效果的正则表达式:

| Request                | Response     |
|------------------------|--------------|
| favicon.png            | /favicon.ico |
| directory/favicon.png  | /favicon.ico |
| directory/favicon.ico  | /favicon.ico |
| favicon.ico            |    |

Dscoduc.. 11

我建议改变亚历克斯的优秀答案:

保持此部分相同:

RewriteCond %{REQUEST_URI} !^/favicon\.ico [NC]

在请求结束时检查的不只是.ico扩展名:

RewriteCond %{REQUEST_URI} favicon\.(ico|png|gif)$ [NC]

添加抓取当前请求主机名的第三个条件:

RewriteCond %{HTTP_HOST} (.+)

最后更改最后一个RewriteRule以使用%1(表示最后匹配条件的反向引用):

RewriteRule (.*) http://%1/favicon.ico [R=301,L]

最终结果如下:

RewriteCond %{REQUEST_URI} !^/favicon\.ico [NC]
RewriteCond %{REQUEST_URI} favicon\.(ico|png|gif)$ [NC]
RewriteCond %{HTTP_HOST} (.+)
RewriteRule (.*) http://%1/favicon.ico [R=301,L]

希望这有助于某人......



1> Dscoduc..:

我建议改变亚历克斯的优秀答案:

保持此部分相同:

RewriteCond %{REQUEST_URI} !^/favicon\.ico [NC]

在请求结束时检查的不只是.ico扩展名:

RewriteCond %{REQUEST_URI} favicon\.(ico|png|gif)$ [NC]

添加抓取当前请求主机名的第三个条件:

RewriteCond %{HTTP_HOST} (.+)

最后更改最后一个RewriteRule以使用%1(表示最后匹配条件的反向引用):

RewriteRule (.*) http://%1/favicon.ico [R=301,L]

最终结果如下:

RewriteCond %{REQUEST_URI} !^/favicon\.ico [NC]
RewriteCond %{REQUEST_URI} favicon\.(ico|png|gif)$ [NC]
RewriteCond %{HTTP_HOST} (.+)
RewriteRule (.*) http://%1/favicon.ico [R=301,L]

希望这有助于某人......



2> alex..:

试试这个

RewriteCond %{REQUEST_URI} !^/favicon\.ico [NC] # if not already going to favicon.ico
RewriteCond %{REQUEST_URI} favicon\.ico [NC] # edit this line to match your favicon matching regex
RewriteRule (.*) http://www.domain.com.au/favicon.ico [R=301,L] #redirect to the real address

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有