2012-04-29 5 views
0

私は私のwww以外をリダイレクトするために以下を使用しています。 URLがWWW:htaccess force wwwと末尾のURLを維持する

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

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

</IfModule> 
<IfModule mod_headers.c> 
Header set Access-Control-Allow-Origin "http://www.domain.com/" 
</IfModule> 

しかし、誰かの訪問がdomain.com/abc-123場合、それはwww.domain.comにリダイレクトして、URLの残りを失うを使用します。

これに関する助力?どうすればURLを終了しないように設定できますか?

Miro

+0

http://www.askapache.com/htaccess/modrewrite-tips-tricks.html#Require_the_www – Casper

+0

http://snipplr.com/view/13398/ – Casper

+0

ウェブサイトは、それに駐車二つのドメインを持っていますだから、私はhtaccessファイルにハードコードされたURLをavoideしようとしています。 – Miro

答えて

1

ルールの順序を入れ替えてください。最初の(WP)ルールはパスを削除しているので、2番目のルールが適用されるまでにパスは空になります。

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

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

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
<IfModule mod_headers.c> 
Header set Access-Control-Allow-Origin "http://www.domain.com/" 
</IfModule> 
関連する問題