2

目前,我正在将所有传入的 *.html 请求重写为 .htaccess 中的 *.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 但它总是一个重定向循环或其他东西。任何帮助,将不胜感激。谢谢!

4

1 回答 1

7

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

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

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

于 2013-09-09T07:04:20.573 回答