.htaccess - 通过 .htaccess 从 URL 中删除双斜杠或更多斜杠的问题

标签 .htaccess url slash

我正在使用以下 htaccess 规则从 web url 中删除双斜杠或更多斜杠:

#remove double/more slashes in url
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

这对于 uri 中间出现的斜线工作正常,例如,如果使用 url:
http://demo.codesamplez.com/html5//audio

它被重定向到正确的单斜线网址:

http://demo.codesamplez.com/html5/audio

但是如果 url 在开头包含双斜杠,就在域名之后,那么它就不起作用,例如:
http://demo.codesamplez.com//html5/audio

它没有被重定向。

我如何修复上述规则以适用于此类网址?谢谢。

最佳答案

试试看:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/{2,} [NC]
RewriteRule ^(.*) $1 [R=301,L]

它应该重定向到域末尾的单个斜杠。
以及对您的改进:
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule . %1/%2 [R=301,L]

关于.htaccess - 通过 .htaccess 从 URL 中删除双斜杠或更多斜杠的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17080652/

相关文章:

php - .htaccess URL 重写失败 - 在此服务器上找不到请求的 URL

ruby-on-rails - 是否可以在 Rails 中获取原始参数字符串?

ios - 在 Core Data 中,NSManaged 对象的 URI 属性类型应该用于什么?

regex - htaccess中这个301规则怎么写

django - 使用 Django,设置管理内容和静态内容的路径的正确方法是什么?

javascript - Backbone 路由匹配不起作用

java - 新 socket 被斜杠弄乱了?

ios - (Swift) 如何在字符串中打印 "\"字符?

windows - 在 Windows 7 PowerShell 中 Tab 自动完成时的尾部斜线

apache - 返回特定目录下丢失文件的404