重写条件(排除文件夹)不起作用

时间:2015-10-02 16:36:12

标签: apache .htaccess mod-rewrite url-rewriting url-redirection

我试图在规则

中使用下划线时排除重写一个文件夹
#replace underscores with dashes
RewriteCond %{REQUEST_URI} !^/featured_item/(.*)$ [OR]
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png)$ [OR]
RewriteRule (.+?)_(.*) $1-$2 [R=301,L]

但不知何故/featured_item/被重写为/featured-item/ anwyay

1 个答案:

答案 0 :(得分:1)

[OR]条件是一个问题,因为任何一个条件将评估为true的请求。

将您的规则更改为:

RewriteCond %{REQUEST_URI} !^/featured_item/(.*)$ [NC]
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png)$ [NC]
RewriteRule (.+?)_(.*) $1-$2 [R=301,L]

确保在清除浏览器缓存后对其进行测试。