2012-06-20 9 views
5

私の.htaccessファイル拡張子.phpを追加し、次のとおりです。mod_rewriteのは

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拡張子はエラーを引き起こすだけです。これをどうやって解決するのですか?

+0

これは書き換えに安全でない方法 "/x"-"/x.php" –

+2

RewriteRuleはブラウザのアドレスバーのURLを変更できません。ブラウザを新しいURLにリダイレクトするには '[R]'(リダイレクト)フラグが必要です。 –

+1

php拡張機能を削除していますか? –

答えて

1

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

意味し、 "最後の" を意味[R=301,L]でL、削除 "のあとにRewriteRulesの処理を停止します。"

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

+0

私はそれをやってみたが、うまくいかなかった。問題はまだ存在します。私がmysite.com/mainに入力するとすぐにwww.mystie.com/main.phpに転送されますが、その.php拡張子は不要です。 – user532493

+0

私の答えを編集しました。注意301、ブラウザにリダイレクトがキャッシュされている可能性があります。 –

+0

ありがとうございました。私は3つの異なるブラウザを試して、それらのすべてでキャッシュをクリアしましたが、同じ問題がまだありました。 – user532493

0

ファイルの4行目の「L」フラグは、「最後」を意味します。つまり、それ以上のルールは処理されません。

+0

私はそれをやってみたが、うまくいかなかった。問題はまだ存在します。私がmysite.com/mainに入力するとすぐにwww.mystie.com/main.phpに転送されますが、その.php拡張子は不要です。 – user532493