我想删除所有链接末尾的.html
,例如www.mywebsite.com/contact.html
应为www.mywebsite.com/contact
以下代码完成了这项工作:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
我也希望我的目录文件也删除.html
,即www.mywebsite.com/rates/index.html
应为www.mywebsite.com/rates
使用以下代码:
RewriteCond %{REQUEST_URI} /index\.html?$ [NC]
RewriteRule ^(.*)index\.html?$ "/$1" [NC,R=301,NE,L]
但是在一起,他们不起作用。如果第二个位于第一个下面只有第一个工作。如果我只有第二个选项,我的第一个选项不起作用,我的所有链接都被破坏了。我如何将两者合并?
答案 0 :(得分:1)
添加.htaccess
文件
Options +FollowSymlinks -MultiViews
RewriteEngine on
# to make `/path/index.html` to /path/
RewriteCond %{THE_REQUEST} ^GET\s(.*/)index\.html [NC]
RewriteRule . %1 [NE,R=301,L]
RewriteCond %{THE_REQUEST} ^GET\s.+\.html [NC]
RewriteRule ^(.+)\.html$ /$1 [NE,R=301,L,NC]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule . %{REQUEST_URI}.html [L]