关于向 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 时是否必须转义正斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3591452/