2017-12-23 5 views
2

どのようにして正しくnginxサーバーの設定を書き込むことができますか?NGINXのユーザーエージェントごとに異なるファイル

... 
if the client has useragent (A) and it refers to http://somehost.domain/somefile.someextension 
     nginx responding a file from the root /file.zip 
if the client has useragent (B) and it refers to http://somehost.domain/somefile.someextension 
     nginx responding a file from the root /file2.zip 
if the client has useragent (C) and it refers to http://somehost.domain/somefile.someextension 
     nginx responding 403 error 
... 

私はこのコードをやった:

map $http_user_agent $browser { 
     "~*Firefox"    "/var/www/test1"; 
     "~*Wget"    "/var/www/test2"; 
     "~*SomeUserAgent"  "/var/www/test3"; 
} 

server { 
... 
root $browser 

をしかし、どのように私は条件が任意のアドレスhttp://somehost.domain/somefile.someextensionに渡すのですか?

答えて

0

maplocationおよびaliasディレクティブを使用すると、特定のURIをヘッダーの値に基づいて複数のファイルにマップできます。 (すべてのファイルが同じディレクトリにある)例えば

は:

map $http_user_agent $browser { 
    default   "nonexistent"; 
    "~*Firefox"  "file.zip"; 
    "~*Wget"   "file1.zip"; 
} 

server { 
    ... 
    location = /somefile.someextension { 
     alias /path/to/directory/$browser; 

     if (!-f $request_filename) { 
      return 403; 
     } 
    } 
} 

ifブロックは、403応答404に応答を変更する必要があります。

this documentを参照してください。

関連する問題