解決策 1:
あなたの選択肢 1:
return 301 $scheme://$host$request_uri;
まさにあなたが望むものです。
rewrite ^ http://$host$request_uri? permanent;
の理由がわからない これは、強制的に 301 を返す適切な構文です。
解決策 2:
技術的には、両方のオプションを使用できます。彼らは働くことができます。
NGINX のドキュメントによると、return
を使用してください できれば . NGINX がリクエストの処理を停止するため (正規表現を処理する必要がないため)、よりシンプルで高速です。さらに、3xx でコードを指定できます。 シリーズ:
return (301 | 302 | 303 | 307) url;
正規表現を使用して URL を検証する必要がある場合、または元の URL の要素をキャプチャする必要がある場合 (対応する NGINX 変数にないことは明らかです)、 rewrite
を使用する必要があります。 . rewrite
を知っている必要があります コード 301 または 302 のみを返します。
rewrite regex URL [flag];
リターンとリライトの詳細については、NGINX Web サイトを参照してください。