【发布时间】:2011-04-05 05:20:13
【问题描述】:
关于向 RewriteRule 或 RewriteCond 提供正则表达式时的正斜杠“/”,或者特别是与 .htaccess 相关的任何其他内容,是否需要转义正斜杠?
这是我想要实现的一个示例
RewriteEngine on
RewriteOptions inherit
RewriteBase /uk-m-directory/
RewriteRule ^(region|region\/|regions\/)$ regions [R=301,L]
RewriteRule ^(county|county\/|counties\/)$ counties [R=301,L]
RewriteRule ^(city|city\/|cities\/)$ cities [R=301,L]
上面的工作正常,当我删除反斜杠时它继续正常工作,如下所示
RewriteEngine on
RewriteOptions inherit
RewriteBase /uk-m-directory/
RewriteRule ^(region|region/|regions/)$ regions [R=301,L]
RewriteRule ^(county|county/|counties/)$ counties [R=301,L]
RewriteRule ^(city|city/|cities/)$ cities [R=301,L]
哪一种方法是正确的?他们都错了吗? 是否有任何特殊原因应该转义或不应该转义正斜杠?
据我所知,我的猜测是不需要转义正斜杠,因为它不是特殊字符。但我只是想确定一下。
如果您想知道这段代码的意义,它会将城市、县和地区(带或不带正斜杠)重定向到它们的复数等价物。此外,如果复数有一个正斜杠,它会删除正斜杠。
【问题讨论】:
标签: .htaccess mod-rewrite escaping