5

私の .htaccess ファイルは次のとおりです。

Options -Multiviews
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php

私が抱えている問題は、www. 接頭辞を追加すると、.php 拡張子がアドレスに追加され、多くの場合、問題が発生する可能性があります。たとえば、私のホームページにアドレス example.com でアクセスしようとすると、そのアドレスは www.example.com/.php に変換されます。wwwが欲しいです。追加する必要がありますが、最後に追加された.php拡張子はエラーを引き起こすだけです. これを修正するにはどうすればよいですか?

4

2 に答える 2

1

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

の L を削除します[R=301,L]。これは「最後」を意味し、「この後の RewriteRules の処理を​​停止する」ことを意味します。

301 は「永久にリダイレクトする」という意味もあります。この場合、ブラウザーは永続的なリダイレクトを記憶します。1 つのバージョンの書き換えルールを持っていて、URL にアクセスしてから変更した可能性はありますか? キャッシュをクリアするか、別のブラウザを試してください。

于 2012-06-20T17:03:06.803 に答える
0

ファイルの 4 行目の "L" フラグは "最後" を意味します。つまり、これ以上ルールを処理しません。Lを削除してみてください。

于 2012-06-20T17:05:08.820 に答える