2012-02-03 12 views
1

次のコードがありますが、動作していると思われる唯一のリダイレクトが最初のものです。私は他のリダイレクトで500のエラーを取得します。どんな洞察力も大変ありがとうございます。サブドメインを新しいサブドメインにリダイレクトするための複数のRewriteCond

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{HTTP_HOST} ^test1.domain.com 
    RewriteRule (.*) http://s.domain.com/sub1/$1 [L] 

    RewriteCond %{HTTP_HOST} ^test2.domain.com 
    RewriteRule (.*) http://s.domain.com/sub2/$1 [L] 

    RewriteCond %{HTTP_HOST} ^test3.domain.com 
    RewriteRule (.*) http://s.domain.com/sub3/$1 [L] 
</IfModule>   
+0

エラーを引き起こしているかを見るためにはRewriteLogを有効にしてみhttp://stackoverflow.com/questions/7746769/log-of-apache-rewrites –

+1

私は追加することをお勧めRフラグ。だから '[L]'は '[L、R]'になります。 – Gerben

+0

@Gerbenはそのトリックをしました。ありがとうございました! – jeffreynolte

答えて

2

これを試してみてください:

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{HTTP_HOST} ^test(1|2|3)\.domain\.com$ [NC] 
    RewriteRule ^(.*)$ http://s.domain.com/sub%1/$1 [L,R] 

</IfModule> 
+1

あなたは、(1 | 2 | 3)の代わりに '([0-9] +)'を使って、任意の数にマッチさせることさえできます。 – Gerben

+0

@Gerbenはい私は '([0-9])'や '(\ d)'を使うことができましたが、質問に記載されているように、 '1'、' 2'、 '3'サブドメイン。したがって、 '(1 | 2 | 3)'となります。 – ThinkingMonkey

+0

ありがとうThinkingMonkeyこれも同様に動作するようですが、私は@Gerbenソリューションを使用しました。 – jeffreynolte

関連する問題