如何使用 htaccess 去除尾随?来自 http://domain.com/directory/folder/?
所以它显示如下:
如何使用 htaccess 去除尾随?来自 http://domain.com/directory/folder/?
所以它显示如下:
不幸的是,没有办法通过 a 中的 URI 匹配来检测杂散的尾部斜杠RewriteRule
(查询字符串被显式删除),您也无法检查%{QUERY_STRING}
变量,因为在这两种情况下,有或没有尾随? ,变量将为空。您需要做的是使用实际请求通过%{THE_REQUEST}
变量匹配尾部斜杠:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|HEAD|POST)\ /[^\ \?]*\?($|\ )
RewriteRule ^(.*)$ /$1? [L,R=301]
那会消除流浪?位于 URL 的后面。上面的正则表达式匹配一个请求,它们看起来像这样:
GET /directory/folder/? HTTP/1.1
所以正则表达式尝试匹配GET
部分(也可以是HEAD
or POST
,存在其他方法但不会影响您在浏览器的 URL 地址栏中看到的内容),然后是请求的 URI ( /[^\ \?]*
),然后是杂散的? , 然后($|\ )
匹配请求的结尾(因为请求可以在没有HTTP/1.1位的情况下结束)或空格。