重定向.html和尾随斜杠

时间:2016-05-25 17:28:46

标签: apache .htaccess redirect trailing-slash

我的网站的.htaccess文件有点麻烦。我希望将page.html和page / URL重定向到页面,不带任何后缀。我已经能够关闭.html,但是当输入页面/ URL时,无论我尝试什么(Apache 2.4.18),我都会收到内部服务器错误。

这里是完整的.htaccess代码(没有任何删除尾部斜杠的尝试)

Options +FollowSymLinks -Indexes -MultiViews

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^website\.com$ [NC]
RewriteRule ^(.*)$ http://www.website.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.website.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]

我想要做的只是复制最后6行代码.html,但让它代替尾随斜杠,但我不知道该怎么做或者是否&# 39;更好的解决方案。非常感谢任何建议!

2 个答案:

答案 0 :(得分:1)

要删除尾部斜杠,请执行以下操作:

RewriteEngine on
RewriteRule (.+)/$ /example/$1 [L,R=301]

删除多余的斜杠:

RewriteCond %{THE_REQUEST} //
RewriteRule .* $0 [R]

答案 1 :(得分:0)

你有没有试过像

这样的东西
(\.html|\/)

我现在不在我的电脑上,但你可以用或操作员来做。

使用多个网址在https://regex101.com/上查看。