我一直在寻找将http://www.mysite.com/about.html
更改为http://www.mysite.com/about
的方法,但到目前为止还没有运气。
这可能吗?
答案 0 :(得分:1)
尝试在.htaccess中添加:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
答案 1 :(得分:1)
RewriteEngine On
RewriteCond %{THE_REQUEST} \.html
RewriteRule ^(.+)\.html$ /$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.+)$ $1.html
当原始请求包含 .html 时,第2-3行会处理这种情况。此请求通过[R=301]
标志转换为301重定向,并通过[L]
标志终止进一步处理。
第4行充当第5行的条件。第5行执行正常 URL重写。我只是将 .html 附加到任何不以 .html 结尾的网址。
如果没有RewriteCond
和[L]
标志,规则将创建一个无限循环。
[R]
防止这种情况。RewriteCond
会阻止它,因为它会检查浏览器发送的原始请求,而不是重写的。