検索

ホームページ  >  に質問  >  本文

php - Apache の書き換えに関する質問

ApacheのRewrite機能を学ぶとき。 flags の L が何をするのかわかりません
たとえば、次のコード:

リーリー

次のコードは実行したくないので、直接コメントして削除すれば良いのではないでしょうか?なぜ L

を使用する必要があるのですか
我想大声告诉你我想大声告诉你2828日前490

全員に返信(1)返信します

  • 習慣沉默

    習慣沉默2017-05-16 13:01:47

    設定ファイルから判断すると、後の文は確かに不要です。ただし、これは指定した構成例にのみ限定されます。 L没用,L がまだ独自のアプリケーション シナリオを持っているという意味ではありません

    仮説

    リーリー

    この構成では、リクエストは 123.html であり、リクエストが Apache に到達すると、Apache はルールを上から下に照合し始めます。
    最初のステップでは、RewriteRule /([0-9]+) を照合します。 /test1.php?id=$1 は、停止するマークがないため、一致が成功したことがわかりました。そのため、コードの実行を続けます RewriteRule /([0-9]+).html /test1.php?id=, 发现匹配通过, 因为没有标记停止,所以继续向下执行代码
    第二步,匹配RewriteRule /(.*) /test2.php?id=, 发现匹配通过,因为是最后一条规则,且是通过的规则,则最终请求被导向test2.php?id=123.html 2 番目のステップ、一致 RewriteRule /(.*) /test2 .php?id =$1 の場合、これは最後のルールであり、渡されたルールであるため、一致が渡されたことがわかり、最後のリクエストは test2.php? のページに送信されます。 id=123.html

    しかし、そうであれば:

    リーリー

    最初の試合が終わった後、マークが見つかりましたL,则apache停止向下继续匹配,而是直接就导向了test1.php?id=123的页面; 而其他的请求(比如:abc.html)只有当第一条规则不通过的时候,才会继续匹配第二条规则, 请求被导向至test2.php?id=abc.html

    返事
    0
  • キャンセル返事