1

きれいな URL に mod_rewrite を使用しています。今まで、すべて正常に動作しています:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule (.*) application.php?request=$1 [L,QSA]
</IfModule>

しかし、次に、次を使用してwww.mysite.comurlsを変換する別のルールを追加しようとしました。mysite.com

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>

結果 : アクセス時はmysite.com問題ないが、アクセスwww.mysite.com時は URL が見苦しくなるmysite.com/application.php?request=

競合がないように .htaccess ファイルを調整するにはどうすればよいですか?

4

1 に答える 1

2

リダイレクト ルールがルーティング ルールの前にあることを確認する必要があります。そうしないと、ルーティング ルールが適用され、書き換えエンジンがループし (URI の変更が停止するまでループし続けます)、書き換えられた URI でリダイレクトが発生します。

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On

  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule (.*) application.php?request=$1 [L,QSA]
</IfModule>
于 2012-12-14T15:44:16.263 に答える