htaccess 和结束斜杠

htaccess 和结束斜杠

尝试为所有 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]

这应该可以完成你正在尝试的事情......

相关内容