recherche

Maison  >  Questions et réponses  >  le corps du texte

php - Questions sur la réécriture d'Apache

Lors de l'apprentissage de la fonction Rewrite d'Apache. Je ne sais pas à quoi sert le L dans les drapeaux
Par exemple, le code suivant :

RewriteRule ^(.*)    first.php?key= [L]
RewriteRule ^(.*)    second.php?key= 

Puisque vous ne souhaitez pas exécuter le code suivant, ne voudriez-vous pas simplement le commenter et le supprimer directement ? Pourquoi devez-vous utiliser L

我想大声告诉你我想大声告诉你2828 Il y a quelques jours489

répondre à tous(1)je répondrai

  • 習慣沉默

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

    À en juger par votre fichier de configuration, cette dernière phrase est en effet inutile. Mais cela ne se limite qu'à l'exemple de configuration que vous avez donné. Cela ne veut pas dire que L est inutile, L a toujours ses propres scénarios d'applicationL没用,L还是有它自己的应用场景的

    假设

    RewriteRule /([0-9]+).html /test1.php?id=
    RewriteRule /(.*) /test2.php?id=

    这个配置,我的请求是123.html, 那么在请求到达apache的时候,apache会从上到下开始匹配规则:
    第一步, 匹配RewriteRule /([0-9]+).html /test1.php?id=, 发现匹配通过, 因为没有标记停止,所以继续向下执行代码
    第二步,匹配RewriteRule /(.*) /test2.php?id=, 发现匹配通过,因为是最后一条规则,且是通过的规则,则最终请求被导向test2.php?id=123.html的页面

    但是,如果是这样:

    RewriteRule /([0-9]+).html /test1.php?id= [L]
    RewriteRule /(.*) /test2.php?id=

    在第一条匹配通过之后,发现有标记L,则apache停止向下继续匹配,而是直接就导向了test1.php?id=123的页面; 而其他的请求(比如:abc.html)只有当第一条规则不通过的时候,才会继续匹配第二条规则, 请求被导向至test2.php?id=abc.html

    Hypothèse🎜 rrreee 🎜Avec cette configuration, ma requête est 123.html, puis lorsque la requête atteint Apache, Apache commencera à faire correspondre les règles de haut en bas :
    La première étape, matchRewriteRule /([0-9]+ ) .html /test1.php?id=$1, a constaté que la correspondance a réussi, car il n'y a aucune marque à arrêter, alors continuez à exécuter le code
    La deuxième étape, matchRewriteRule /(. *) /test2 .php?id=$1, on constate que la correspondance est passée, car c'est la dernière règle et c'est une règle passée, la requête finale est dirigée vers la page de test2 .php?id=123.html 🎜 🎜Mais si oui : 🎜 rrreee 🎜Une fois la première correspondance réussie et la marque L trouvée, Apache cesse de correspondre vers le bas et mène directement à la page test1.php?id=123 et à d'autres requêtes (pour exemple : abc.html) continuera à correspondre à la deuxième règle uniquement lorsque la première règle échoue et que la requête est dirigée vers test2.php?id=abc.html< /code>🎜

    répondre
    0
  • Annulerrépondre