小编Tra*_*nTC的帖子

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

关于向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)

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

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

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

.htaccess mod-rewrite escaping

20
推荐指数
1
解决办法
1万
查看次数

标签 统计

.htaccess ×1

escaping ×1

mod-rewrite ×1