尝试为所有 URL 添加结尾斜杠。代码如下:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.html$
RewriteCond %{REQUEST_URI} !.xml$
RewriteRule ^(.*[^/])$ $1/ [R=301,L]
它有效,但是。当访问http://www.example.com//你得到的是索引页的克隆。这对 SEO 不利。然而http://www.example.com/articles//重定向至http://www.example.com/articles/ 如何处理索引中的双斜杠?需要帮助!
答案1
尝试这个:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
...
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [R=301,L]
您可以在我写的地方添加您的例外情况...
,并且仅当没有尾随斜杠时它才会重定向。
编辑:
成立这并验证其有效性:
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{THE_REQUEST} ^[A-Z]+\s//+(.*)\sHTTP/[0-9.]+$ [OR]
RewriteCond %{THE_REQUEST} ^[A-Z]+\s(.*/)/+\sHTTP/[0-9.]+$
RewriteRule .* http://%{HTTP_HOST}/%1 [R=301,L]
这应该可以完成你正在尝试的事情......