.Htaccess - 文件扩展名未被删除

.Htaccess - 文件扩展名未被删除

我正在使用下面的 .htaccess 删除 .html 文件扩展名,但如果有人输入

example.com/test

进入重定向到的浏览器

http://www.example.com/test.html

为什么 .html 被添加了但并没有被删除?

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^/]+)/$ $1.html 

答案1

进行替换的行是

重写规则 ^([^/]+)/$ $1.html 

这将无条件地添加.html到任何请求中,其中主机名后的唯一斜杠是最后一个字符(例如http://example.com/test/,但不是http://example.com/test1/test2/)。

如果你想剥离.html,试试这个:

重写规则 (.*)\.html$ $1

相关内容