2009-08-24 17 views
2

複数のドメインに対してRewriteRuleを設定することは可能でしょうか。サブドメインからドメインへのリダイレクト+ .htaccess

私の要件は、www.maindomain.com 私の現在のドメイン名であると私は 3 domianとサブドメイン、サブドメインのURLを持っていると言うことは example1.maindomain.com example2.maindomain.com example3.maindomainでみましょう同様。 comのこれまでのユーザーが、それは例2のためにexample1.maindomain.comの内容と同じを取得する必要がありますwww.example1.comにアクセスしようとすると、

今私がしたいが、私は、Apache +旅客を使用しています

を例3。

ありがとうございました。

答えて

9

まず、リダイレクトするすべてのドメイン名に一致する条件を作成します。ドメインの一致部分を使用して、ターゲットサブドメインのURLに書き換えるルールを作成します。例えばから

RewriteCond %{HTTP_HOST} ^www\.(example[123])\.com$ [NC] 
RewriteRule ^(.*) http://%1.maindomain.com/$1 [L,R] 

上記書き換え:だから、あなたの質問に記載された目的のマッピング与えられ、次のようなものは、トリックを行う必要がありますwww.example1.com~example1.maindomain.com。同様に、あなたがそれを必要とする場合は、他の方法で回ってください:

RewriteCond %{HTTP_HOST} ^(example[123])\.maindomain\.com$ [NC] 
RewriteRule ^(.*) http://www.%1.com/$1 [L,R] 

example2.maindomain.comwww.example2.com

+0

ワイルドカードを使用してこれを行うことはできますか?何かが好き: RewriteCond%{HTTP_HOST} ^(*)\。メインドメイン\ .com $ [NC] RewriteRule ^(。*)http://www.maindomain.com/$1 [L、R] – tvgemert

+1

すでに "ワイルドカード"が含まれています:['RewriteCond']のホスト名パターン(http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#RewriteCond)は正規表現です。これは' www.example1 .com "、" www.example2.com "、" www.example3.com "もちろん、他の正規表現を使用することもできます。サブドメインをマッチさせるためには、 '\ .maindomain \ .com $'が必要です(あるいは '^。* \。maindomain \ .com $')。 – earl

+0

ありがとう!私が働いていることは、 RewriteEngine On RewriteCond%{HTTP_HOST} ^(。+)\。domain \ .nl $ [NC] RewriteRule^http://domain.nl/?subdomain=%1 [L 、R] – tvgemert

関連する問題