我尝试使用重写规则删除网址中的双斜线,但它无法正常工作。
我已经尝试过了:
RewriteRule ^(([^/]+/)*)/+(.*) https://www.example.com/$1$3 [R=301,L]
或
RedirectMatch 301 ^//(.*)$ http://example.com/$1
我创建了一个文件test.php我的根目录,里面有$ _SERVER转储; 每当我打电话给example.com/test.php ou example.com////test.php它总是显示我的文件,但$ _SERVER ['查询']仍然包含//// 我该如何重定向?
答案 0 :(得分:1)
与%{THE_REQUEST}
匹配浏览器向服务器http://httpd.apache.org/docs/current/mod/mod_rewrite.html发送的完整HTTP请求行,如流程:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/{2,}((?!%20HTTP/1.1\b)\b\w+) [NC]
RewriteRule ^ /%1 [R=301,L,NE]
或者这个:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,7}\s//+(.*)\sHTTP.*$
RewriteRule ^.*$ /%1 [R=301,L]
因此,上面的代码将删除任何其他前导斜杠。
注意:清除浏览器缓存,然后对其进行测试。