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

前端之家收集整理的这篇文章主要介绍了mod_rewrite正则表达式仅在某个字符串不存在时才匹配前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
浏览我的服务器日志,我发现我网站上的很多页面都在各种不同的目录中请求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            | <no match>   |
试试这个
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

猜你在找的正则表达式相关文章