2012-03-10 16 views
1

私はこれに答えるために1時間を費やしましたが、あなたがボキャブラリを知っていなければ、検索することは非常に困難です。私が欲しいのは、死んだ単純なことです。私はそうのようなサーバーを持っている:私が欲しいものnginxは場所の部分を無視します

server { 
    listen 80; 
    server_name test.dev; 
    root /srv/www; 

    location/{ 
    index foo.html; 
    } 

    location /foo { 
    index foo.html; 
    } 

    location /bar { 
    index foo.html; 
    } 
} 

は/、/ fooのためのもので、/バー、すべてのポイントへまったく同じファイルに。言い換えれば、私は場所部分が完全に無視されることを望む。私があなたに奉仕するように言うルートディレクトリからファイルを提供するだけです。

エイリアスは答えではないようですが、どのファイルが配信されるのかわかりません。

答えて

1

私はたぶんリライトを使用します。

server { 
    listen 80; 
    server_name test.dev; 
    root /srv/www; 

    location/{ 
    index foo.html; 
    rewrite ^/foo(.*)$ /$1 last; 
    rewrite ^/bar(.*)$ /$1 last; 
    break; 
    } 

} 

そのyahのような何か、私はあなたがここからそれを把握することができると思います:)

0

各適格な場所をファイルを提供する名前付きの場所にリダイレクトしてみてください。

server { 
    ... 
    error_page 418 = @response; 

    location /foo { 
    return 418; 
    } 
    location /bar { 
    return 418; 
    } 
    location @response { 
    index response.html; 
    } 
} 
+0

ご回答いただきありがとうございます。これがうまくいくと私は完全に信じていますが、これはエラーではないときにエラーコードを返すことに非常に不快です。 – Matthew

+0

私は、デフォルトではnginxがファイルシステムのパスの一部であると解釈しますが、この動作を上書きする方法が必要であることを理解しています... – Matthew

関連する問題