目前我在.htaccess中将* .html的所有传入请求重写为* .php:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteRule ^(.*).html$ $1.php [QSA]
ErrorDocument 404 /404.html
所以/something.html被重写为/something.php。
但是,/ something.php仍然可以在浏览器中直接访问。现在,当人们在浏览器中访问它时,我希望它重定向到/something.html,以避免同一页内容的2个不同的URL。
这可以在我的.htaccess中进行吗?怎么样?我试过R = 301,但它总是一个重定向循环或其他东西。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:6)
在RewriteRule ^(.*).html$ $1.php [QSA]
规则上方添加此内容:
RewriteCond %{THE_REQUEST} \ /(.+)\.php
RewriteRule ^ /%1.html [L,R=301]
这会将浏览器/客户端重定向到相同的请求,但使用.html
而不是.php
。