ファイル構造を変更しています。以前はサイトのルート レベルで使用できた URL の一部は、サブフォルダーに移動されました。
だから私は持ってい$uri
ます。Itry_files $uri @check_subfolder;
ファイル (通常の .html ファイル) がまだルート レベルに存在する場合、またはその URL が適切に記述されている場合は、正常に機能try_files $uri
します。しかし、ファイルがサブフォルダーに移動された場合は、次のように入力します
location @check_subfolder {
}
ここでリダイレクトを行うだけでrewrite ^(.*) $scheme://$host/articles$1 permanent;
も、すべてが完璧です。しかし、最初にサブフォルダーに$uri
実際に存在するかどうかを確認したいと思います。/articles
私もです
location @check_subfolder {
if (-f "/articles${uri}") {
rewrite ^(.*) $scheme://$host/articles$1 permanent;
}
}
エラー 404 に落ちるだけです。リダイレクトは行われません。if
リダイレクトなしで動作します。したがって、明らかに問題は、条件をどのように定式化するかです。
if (-f "/articles${uri}")
動作しません。
if (-f "/articles${request_filename}")
動作しません。
if (-f "/articles/${request_filename}")
動作しません。
if (-f /articles/$request_filename)
動作しません。
if (-f /articles/$uri)
動作しません。
私は明らかに間違った連結を書きます。