0

私のホスト(dev.foo.com)は次のようなマップを持っています。約1000エントリ。

rewrite ^/2f7f29e4-14be-564a-85e0-5bb29b9fc33f/(.*)$ "/gajus kuizinas/2012 04 03 gappery/$1" last;
rewrite ^/cb6e7269-75c0-5926-b5d5-4e625e1a320d/(.*)$ "/gajus kuizinas/2012 04 07 gappery/$1" last;
rewrite ^/8b96e14f-09cd-55a5-9de3-19775b5ee2bb/(.*)$ "/gajus kuizinas/2012 05 17 followem/$1" last;

指定されたUUIDの1つで始まるURIのみにホストを制限する方法はありますか?つまり、などの他のパスにアクセスできないようにしdev.foo.com/public/[..]ます。

4

2 に答える 2

1
location / {
    return 403;
}

location ~ ^/\w{8}-(?:\w{4}-){3}\w{12}/ {
    ...
}
于 2012-06-05T12:14:33.227 に答える
0

これをサーバーまたはロケーションディレクティブ内に追加します。

    if ($request_uri !~ "^/\w{8}-(?:\w{4}-){3}\w{12}/.*") {
        return 403;
    }

だから、ドキュメントが言うように、

$ request_uriこの変数は、引数を含むクライアントから受信した元のリクエストURIと同じです。変更できません。書き換え後/変更されたURIについては$uriを見てください。ホスト名は含まれません。例: "/ foo / bar.php?arg = baz"

$request_uriがuuid正規表現と一致しない場合、nginxは403エラー(アクセスが拒否されました)を返します。


編集:の503から403 if

于 2012-06-04T08:26:56.543 に答える