2016-09-18 10 views
3

ユーザーが入力しているサブドメインに基づいてリダイレクトしたいと考えています。例えばNGINXでURLのサブドメインを取得する方法

<subdomain>.example.com/admin -> <subdomain>.myurl.com

は、理想的には私は私のリダイレクトURLにパラメータとして<subdomain>渡したいです。

私はこの線に沿って何かを見ていた。この投稿に基づいて

location ~ (sub).(somewhere).(com)/(some)(thing)/(something)(else) { 
    set $var1 = $1; # = sub in above example 
    set $var2 = $2; # = somewhere in above example 
    set $var3 = $3; # = com in above example 
    set $var4 = $4; # = some in above example 
    set $var5 = $5; # = thing in above example 
    set $var6 = $6; # = something in above example 
    set $var7 = $7; # = else in above example 
    rewrite^$1/$2 last; # would be sub/somewhere 
} 

Manipulate or split string(私は、変数セットの構文は、この例では間違っていると思いますが、あなたはその要旨を取得)。

答えて

4

URLのドメイン名の部分は、locationディレクティブでテストされていません。 server_nameディレクティブで名前付きキャプチャを使用する必要があります。詳細はthis documentを参照してください。例えば

server { 
    server_name ~^(?<name>\w+)\.example\.com$; 

    location /admin { 
     return 301 $scheme://$name.myurl.com/; 
    } 
} 
+0

ことが可能ではないかもしれないために、私が求めています何それの音で。 理想的には、すでにserver_nameが設定されているサーバーブロック内に配置し、それが ' .example.com/admin->.myurl.com'または '.example.com/admin - > .myurl.com' 私はハードコードすることができますが、リアクションフロントエンドをAPIのURLにある管理パネルにリダイレクトするこのようなサイトをいくつか実行すると、ジェネリック設定。 – Stretch0

関連する問題