0

私は GoDaddy を通じて共有ホスティング アカウントを持っており、そのサイトでは .htaccess を使用してすべてのリクエストを index.php 経由でルーティングしています。これはそれ自体でうまく機能します。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L,QSA]

次に、www 以外の URL を使用するように制限したかったので、その前に次を追加しました。

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

したがって、全体としては次のとおりです。

RewriteEngine On

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L,QSA]

ただし、これら 2 つを一緒に使用すると機能しません。URL は、ルーティングする必要がある URL の /missing.html にリダイレクトしようとします。別々に、これらは両方とも問題ありません。両方を連携させる方法はありますか?

4

1 に答える 1

0

L一緒に機能させたい場合は、最初のタグを削除する必要があります。ルールが一致Lする場合、それ以上のルールは処理されないためです。

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301]   //remove L from this line

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L,QSA] 
于 2013-01-11T01:42:15.307 に答える