2016-09-05 7 views
0

「?」の後ろに何かをキャプチャしながらサブドメインをどのようにリダイレクトしますか?特定の変数を維持しながら、htaccessを使ってリダイレクトに追加しますか?htaccessリダイレクト中にクエリ文字列と変数を解析します

http://subdomain1.example.com/?retailcentre=subdomain1&utm_source=twitter&utm_medium=twitter&utm_campaign=022641example 

に...

http://www.example.com/?retailcentre=subdomain1&utm_source=twitter&utm_medium=twitter&utm_campaign=022641example 

後のクエリ文字列...からリダイレクト '?' twitter、facebookなどから来るかもしれない何でもかまいません。

解析されなければならない1つのvarは、リダイレクトがどのサブドメインから来たのか、この場合は 'retailcentre'です。

答えて

2

で試してみてください:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^subdomain1\.example\.com$ [NC] 
RewriteRule^http://www.example.com%{REQUEST_URI}?retailcentre=subdomain1 [QSA,NE,R=301,L] 

[QSA]旗:交換はURIクエリ文字列が含まれている場合、するRewriteRuleのデフォルトの動作は、既存のクエリ文字列を破棄し、新たに発生したものと交換することです。 [QSA]フラグを使用すると、クエリ文字列が結合されます。

+0

おかげで、これは近いですが、「retailcentre」変数が欠落しています。この変数の値はURLのサブドメイン部分から取得されるため、 '?retailcentre = subdomain1'部分の後に元のURLのクエリ文字列が続きます。これは可能ですか? – Amesey

+0

私はこれをうまく使いこなしました。私は以下を使用しました... 'RewriteRule^http://www.example.com/?retailcentre=subdomain1$1%{REQUEST_URI} [QSA、NE、R = 301、 L] '...しかし、 'retailcentre'の値の後に'%2F'を追加します。 – Amesey

+0

私の作成したURLは、http://www.example.com/?retailcentre = subdomain1%2F&utm_source = email&utm_medium = email&utm_campaign = 022641ReservedEventCustomerEmail'のようになります。私は '%2F'を削除したい – Amesey

0

あなたは次のルールを使用することができます。

RewriteEngine on 

RewriteCond %{HTTP_HOST} !^www\.example\.com$ 
RewriteCond %{THE_REQUEST} /\?retailcentre=.+&utm_source=.+&utm_medium=.+&utm_campaign=.+\sHTTP [NC] 
RewriteRule^http://example.com/ [L,R,NE] 
+0

私は '?'の後に来る何かをキャプチャする必要があるので、これはこのシナリオでは動作しません。特定の変数ではありません。 – Amesey

関連する問題