2017-09-27 24 views
0

Nginxのメインドメインのすべてのサブドメインをどのようにリダイレクトできますか?Nginxのサブドメインからメインドメインへの動的301リダイレクト

aaa.domain1.com - > domain1.com

www.domain2.com - > domain2.com

bbb.domain3.com - > domain3.com

server_name *.domain1.com *.domain2.com *.domain3.com *.domain4.com; 
return 301 http://XXX$request_uri; 
+0

解決方法は、[return expression]文で必要なドメインの一部を取得するために[正規表現サーバー名](http://nginx.org/en/docs/http/server_names.html#regex_names)を使用することです。 –

答えて

1

ます

:これは持っている任意のサーバー名をチェックします

server { 
    listen  ....; 
    server_name ~^.*\.?(?<domain>.+\.com)$; 
    return  301 http://$domain$request_uri; 
} 

ような何かを試すことができます任意 メインドメイン .COM( (?<domain>.+\.com)$

?<domain>続い

  • 一つ以上のサブドメインか(^.*\.?
  • はでメインドメイン .COMを保存します変数であるため、return文(あなたの場合はdomain1.com、domain2.comなど)で使用できます。

    注:私はこれをテストしませんでしたが、うまくいけばこの例のコンセプトを見ることができます。

+0

ありがとうございます。しかし、同じサーバー上の他のサーバー名に問題が生じないように、server_nameに静的サーバー名が必要です。 – nenad007

+0

okですが、任意のドメイン( '。+ \。com')を静的ドメイン(正規表現の'(domain1.com | domain2.com | domain3.com | domain4.com) 'のように置き換えることができます – Moema

関連する問題