我正在使用下面的 .htaccess 删除 .html 文件扩展名,但如果有人输入
example.com/test
进入重定向到的浏览器
。
为什么 .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