我的网站似乎不喜欢删除.html,我无法修复它



我试图在我的 .htaccess 文件中使用此代码删除 url 末尾的.html

RewriteEngine On
RewriteCond %{REQUEST_URI} !.[a-zA-Z0-9]{3,4}
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1.html

但是正如你所看到的,当你访问我的网站时,它只是重定向到没有.html的链接,并说禁止。我也有

Options -Indexes

在我的 .htaccess 文件中,但删除它并不能解决问题。

编辑:如果我把.html放在URL的末尾,它可以工作,但如果我删除它,它说禁止

请帮忙

谢谢

尝试使用这个:

RewriteEngine on
RewriteCond %{THE_REQUEST} /([^.]+).html [NC]
RewriteRule ^ /%1 [NC,L,R]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]

这应该会从您的网址中移除.html。请确保在测试之前清除缓存。

这应该适用于 apache:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*).html$ /$1 [L,R=301] 

我也用我自己的网站(在 apache 上使用 .htaccess)这样做了:

# Automatically redirect /index.html files to their URL directory
RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /.*index.html HTTP/
RewriteRule ^(.*)index.html$ /$1 [R=301,L]

最新更新