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

dat*_*.io 2 .htaccess seo redirect

目前我在.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
Run Code Online (Sandbox Code Playgroud)

所以/something.html被重写为/something.php.

但是,/ something.php仍然可以在浏览器中直接访问.现在,当人们在浏览器中访问它时,我希望它重定向到/something.html,以避免同一页面内容的2个不同的URL.

这可以在我的.htaccess中做到吗?怎么样?我试过R = 301,但它总是一个重定向循环或其他东西.任何帮助,将不胜感激.谢谢!

Jon*_*Lin 6

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

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

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