301通过.htaccess将* .php重定向到* .html?

时间:2013-09-09 06:57:28

标签: .htaccess redirect seo

目前我在.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,但它总是一个重定向循环或其他东西。任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:6)

RewriteRule ^(.*).html$ $1.php [QSA]规则上方添加此内容:

RewriteCond %{THE_REQUEST} \ /(.+)\.php
RewriteRule ^ /%1.html [L,R=301]

这会将浏览器/客户端重定向到相同的请求,但使用.html而不是.php