我尝试在url的内部或内部捕获多个斜杠,但不是那些斜杠(可能是两个或更多),它们放在协议之后(http://,https://,ftp://文件:///)
我在http://www.regexr.com/,https://regex101.com和http://www.regextester.com/中的^(.*)//+(.*)$
或[^:](\/{2,})
或^(.*?)(/{2,})(.*)$
等类似SO线程中尝试了许多发现。但对我来说没有任何明确的做法。
它非常奇怪,我找不到一个有效的例子 - 这个目标不是那么简单。有人可以分享正常运作的正则表达式吗?
答案 0 :(得分:2)
以下规则可以在您的网站根.htaccess中使用,以从输入网址中删除多个斜杠:
RewriteEngine On
RewriteCond %{THE_REQUEST} //
RewriteRule ^.*$ /$0 [R=301,L,NE]
THE_REQUEST
变量表示Apache从您的浏览器收到的原始请求,并且在执行某些重写规则后不会被覆盖。此变量的示例值为GET /index.php?id=123 HTTP/1.1
。
RewriteRule
内的模式会自动将多个斜杠转换为单个斜杠。