このような現在の設定がある場合。いくつかの選択パス以外のすべてのサブディレクトリを書き換えます
domain.com/some-path/
domain.com/some-path/locations/
domain.com/some-path/locations/some-location
domain.com/some-path/locations/locb
domain.com/some-path/locations/infinite-location-list
これは書き換えたくないURLパターンです。 some-path
サブディレクトリ、そのサブフォルダはlocations
、サブディレクトリはlocations
です。
some-path
ディレクトリの下の他のすべての子URLは、/some-path/
ディレクトリに向けられた301である必要があります。
私はこのような何か試してみました:
location ~* ^/some-path/(.+)? {
if ($request_uri !~ "^/some-path/locations/(.*)$") {
return 301 http://domain.com/some-path/;
}
}
をしかし/some-path/
リダイレクトループで立ち往生し、/some-path/locations/
が私の目標を達成する方法についての404
思考サーバー側のnginxのをスローしますか?
デザイン面で完全に同意します。私は実際にこの要求を元に戻しています。サイトのこのセクション/サブディレクトリには、大量の書き換え/リダイレクトが必要で、個別に書き込むには全く効率が悪いだけです。私はこの戦いを失った場合のためにこれは私の代替手段になるだろう。 – Nathan
@Nathan、まあ、クレイジーな書き換えには何も問題はありません - チェックアウトhttp://mdoc.su/、私のgithubのオープンソースです。 :-) – cnst