我在htaccess文件中有一个规则,可以从url中删除任何多余的斜杠,这个规则适用于任何多于一个斜杠的子目录。这是我需要的
比如说。
http://www.example.com/test////重定向到http://www.example.com/test/
http://www.example.com///需要重定向到http://www.example.com
有什么我需要补充的吗?干杯。
RewriteCond %{REQUEST_URI} ^(.*?)(?:/){2,}$
RewriteRule . %1/ [R=301,L]
4条答案
按热度按时间bakd9h0s1#
要删除
REQUEST_URI
中任意位置的多个斜杠,此规则效果最佳:它利用了**
mod_rewrite
引擎本身将RewriteRule
模式中的所有多个正斜杠转换为单个斜杠的事实**。我们使用RewriteCond %{THE_REQUEST}
来确保原始REQUEST_URI
包含多个斜杠。此处
[^?]*//
在匹配查询字符串之前匹配2个//
,因为[^?]
匹配除?
之外任何内容这将允许查询字符串中存在//
anhgbhbe2#
尝试使用:
zpqajqem3#
你的htaccess工程伟大,因为你可以测试下面的链接
https://htaccess.madewithlove.be/
因此,你需要确保你的测试要么使用Chrome隐身窗口或使用如下
我通常更喜欢curl,因为我知道它总是能从服务器给予一个新的响应
jbose2ul4#
你只需要两个规则来匹配两个不同的模式