微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.htaccess:“ RewriteRule ^-”和“ RewriteRule ^*$ / $ 1”之间有什么区别?

如何解决.htaccess:“ RewriteRule ^-”和“ RewriteRule ^*$ / $ 1”之间有什么区别?

我一生都无法弄清这两项之间的区别,但是即使在我当前使用的情况下,它们都解析为 相同 URL, 一个成功解决,但第二个给出403错误

RewriteRule ^ - [S=1]

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1  [S=1]

假设它们解析为相同的URL,那么两者之间有什么区别?

(根据https://htaccess.madewithlove.be/,它们都解析为完全相同的URL。)

解决方法

RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1  [S=1]

此规则将导致重定向循环,因为它只是重定向到自身而没有任何条件或模式匹配。即使此规则中没有R标志,但由于目标中使用了绝对URL,R=302也会被发送回客户端。


RewriteRule ^ - [S=1]

此规则表示不执行任何操作(不执行任何操作),并跳过此规则下方的一条规则。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。