1

私の .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

3 に答える 3

1

問題は最後の行にあると思います。Mod Rewrite は、最初のルールを実行した後も停止しません。最後のルール修飾子をリダイレクト ルールに追加してみてください。

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
于 2012-06-27T13:50:12.457 に答える
0

301 リダイレクト後にルールの処理を停止するように apache に指示する必要があります。これを行うには、L を追加します - 例:

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

余談ですが、最初の行でマルチビューを有効にして、最後の 3 行を削除した方がうまくいきます ;)

于 2012-06-27T13:48:09.510 に答える
0

.htaccess から以下の行を削除して試してください。

RewriteRule ^(.*)$ $1.php
于 2012-06-27T13:54:00.347 に答える