RewriteCond并结束正斜杠

时间:2015-04-02 10:34:00

标签: apache mod-rewrite

我试图让我的指令忽略URL中的结束正斜杠,即使它在那里。

此代码有效

RewriteCond %{REQUEST_URI}  ^/category1/category2/category3/$ [NC]
RewriteCond %{QUERY_STRING} ^recipient=For\+Boys(.*)$ [NC] 
RewriteRule ^(.*)$ /newcategory/for-boys/? [NC,L,R=301]

所以起始网址如:

http://www.foo.com/category1/category2/category3/?recipient=For+Boys

重定向到

http://www.foo.com/newcategory/for-boys/

问题

但是,当起始网址为:

时,我的问题就出现了
http://www.foo.com/category1/category2/category3?recipient=For+Boys 

请注意category3?recipient=For+Boys

之间缺少正斜杠

如果存在或不存在结束正斜杠,我应该在第一个RewriteCond中放置哪个重定向?

1 个答案:

答案 0 :(得分:1)

知道了:

.htaccess regular expression need to make trailing forward slash optional

  

刚刚放/?在你的模式结尾的$之前:

所以我的第一个RewriteCond是

RewriteCond %{REQUEST_URI}  ^/category1/category2/category3/?$ [NC]