2017-11-01 21 views
1

私は、例えば、同じサーバーを指すいくつかのドメインを持っている:nginxのURI書き換え

server_name www.domain1.dev www.domain2.dev www.domain3.dev 

構成の大部分が同じである、と彼らは同じPHPファイルを指しているが、私は持っていますドメインごとに異なる資産フォルダ:

/www.domain1.dev/assets/ 
/www.domain2.dev/assets/ 
/www.domain3.dev/assets/ 

私はhttp://www.domain1.dev/www.domain1.dev/assets/*

http://www.domain1.dev/assets/*のような要求を書き換えたい理由ですしようとしていましたlocation - returnで遊んでいますが、現在のドメイン名を取得する方法が見つかりませんでした。

答えて

1

現在要求されているドメイン名は$hostまたは$http_hostです。違いについては、this documentを参照してください。例えば

location ^~ /assets { 
    root /path/to/root/$host; 
} 

または:

location ^~ /assets { 
    return 301 /$host$request_uri; 
} 

別のアプローチは、別々のserverのブロックに自分のドメイン名を分離し、共通のコンテンツに引っ張ってincludeステートメントを使用することであろう。

+0

は、2番目の例をテストしました。 http://www.domain1.dev/assets/で動作しますが、http://www.domain1.dev/assets/css/bootstrap.min.css – CrazyWu

+0

のようなリンクでは何もしません。 'location ^〜/ assets {' fixedこの問題は、ありがとう – CrazyWu

+0

私は私の答えにあなたのコメントを取り入れます。 –