使用mod_rewrite时是否必须转义正斜杠?

Tra*_*nTC 20 .htaccess mod-rewrite escaping

关于向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]
Run Code Online (Sandbox Code Playgroud)

以上工作正常,当我删除反斜杠时,它继续正常工作,如下所示

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]
Run Code Online (Sandbox Code Playgroud)

哪一个是正确的方法?他们都错了吗?是否有任何特殊原因应该逃避或不应该逃避正斜杠?

据我所知,我的猜测是正斜杠不需要被转义,因为它不是一个特殊字符.但我只是想确定一下.

如果你想知道这个代码的重点,它会将城市,县和地区(有或没有正斜杠)重定向到它们的复数等价物.此外,如果复数具有正斜杠,则删除正斜杠.

Joh*_*ica 20

不,你不必逃避斜线.正斜杠在正则表达式中没有任何特殊含义.

过去曾经咬过我的一个常见字符是?查询字符串.那个你必须逃脱.