2

現在、.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 を試しましたが、常にリダイレクト ループか何かです。どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

7

RewriteRule ^(.*).html$ $1.php [QSA]これをルールの上に追加します。

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

これにより、ブラウザ/クライアントが同じリクエストにリダイレクトされますが.html.php.

于 2013-09-09T07:04:20.573 に答える