ファイル構造を変更しています。以前はサイトのルート レベルで使用できた 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)動作しません。
私は明らかに間違った連結を書きます。