如何解决为什么此RewriteRule需要标志[L]
使用此配置
<Directory "/path/to/www">
RewriteEngine On
RewriteRule "^v1(.*)$" "v2$1" [L]
RewriteRule "^v2(.*)$" "/v3$1" [R=301]
</Directory>
http://localhost/v1/file.txt重定向到http://localhost/v3/file.txt
但是没有[L]标志,相同的URL重定向到http://localhost/v3/file.txt/file.txt
我不知道为什么。
v3/file.txt/file.txt
很奇怪,为什么文件名重复?
谢谢!
解决方法
来自文档here
[L]标志使mod_rewrite停止处理规则集。在大多数情况下,这意味着如果规则匹配,将不再处理其他规则。这对应于Perl中的最后一个命令,或C中的break命令。使用此标志指示应立即应用当前规则,而无需考虑其他规则。
换句话说,[L]打破了链条,否则,将应用下一条规则。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。