
15 年以上 Apache の Web サーバーを使用してきたので、新しいサーバーにチャンスを与えたいと思いました。;) 簡潔にするために NGINX 構成ファイルを調整しようとしています。
このサイトでは、通常、すべてのトラフィックを特定の に書き換えますindex.php
が、個別の を含む と のprivacy
2つのディレクトリがあるため、これら 2 つのディレクトリについては、ディレクトリ内のファイルのみを呼び出すようにしたいと考えています。eula
index.php
例えば:
location ~ /(privacy|eula) {
try_files $uri $uri/ =404;
}
ブラウザがページのコンテンツを .dms ファイルとしてダウンロードするようになります。
場所を次のように 2 つに分割します。
location /privacy {
try_files $uri $uri/ =404;
}
location /eula {
try_files $uri $uri/ =404;
}
意図したとおりに動作します。
検索して、このように実行するようにという提案も見つけましたが、同じ効果がありましたlocation ~ ^/(privacy|eula)
。NGINX が非常に冗長であるという事実を受け入れるしかないのでしょうか、それとも私が間違っているのでしょうか?
ありがとう
答え1
の正規表現 location
ブロックは、一致が見つかるまで順番に評価されます。
あなたの場合、ブロックlocation ~ /(privacy|eula)
の上に配置したためlocation ~ \.php$
、 のような URI は/eula/index.php
正しい場所で処理されず、代わりにダウンロードされます。
location ~ /(privacy|eula)
ブロックを配置する後ブロックlocation ~ \.php$
。
見るこのドキュメント詳細については。