301 リダイレクトの[R=301]
との違いを誰か教えてもらえますか? [R=301,L]
リダイレクト URL に最適なのはどれですか?
[R=301,L]
どちらも問題なく動作しますが、URL を新しい URL に変更し[R=301]
、コンテンツのみをリダイレクトすることに気付きました。
誰でもこれについての洞察を共有できますか?
フラグの意味R=301
に関係なく、特定の書き換えルールの終了をマークしたい場合は、ルールに配置する必要があります。L
Last
公式ドキュメントによると:
[L] フラグにより、mod_rewrite はルール セットの処理を停止します。ほとんどの場合、これは、ルールが一致した場合、それ以上のルールは処理されないことを意味します。これは、Perl の最後のコマンド、または C の break コマンドに対応します。このフラグを使用して、それ以上のルールを考慮せずに現在のルールをすぐに適用する必要があることを示します。
R
リダイレクトを行い、L
これより下のルールを適用することを禁止します。存在しない場合L
は、残りのルールが新しい URL に適用されます。
公式ドキュメントには次のように記載されています。
ほとんどの場合、[R] を [L] と組み合わせて使用する (つまり、[R,L] を使用する) ことをお勧めします。これは、[R] フラグが単独で http://thishost[:thisport] を URI の先頭に付加するためです。 、しかし、これをルールセットの次のルールに渡します。これにより、多くの場合、「リクエスト内の無効な URI」という警告が発生する可能性があります。
フラグ [L] と [R=301,L] の主な違いは、R フラグが明示的な外部 HTTP リダイレクトを引き起こす (例外が 1 つある) のに対し、R フラグがないと、ルールは暗黙的な内部リダイレクトだけを引き起こす可能性があることです。実際のルールと要求に応じて。
オプションのステータス コードは、リダイレクト応答のタイプを指定するだけです。301 は永続的なリダイレクトを示します。