php - Soalan tentang penulisan semula Apache
我想大声告诉你
我想大声告诉你 2017-05-16 12:59:47
0
1
478

Apabila mempelajari fungsi Tulis Semula Apache. Saya tidak tahu apa yang L dalam bendera lakukan
Sebagai contoh, kod berikut:

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

Memandangkan anda tidak mahu melaksanakan kod berikut, bukankah anda hanya mengulas dan memadamnya terus? Kenapa perlu guna L

我想大声告诉你
我想大声告诉你

membalas semua(1)
習慣沉默

Berdasarkan fail konfigurasi anda, ayat yang terakhir sememangnya tidak diperlukan. Tetapi ini hanya terhad kepada contoh konfigurasi yang anda berikan. Ini tidak bermakna L tidak berguna, L masih mempunyai senario aplikasinya sendiriL没用,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

Hipotesis🎜 rrreee 🎜Dengan konfigurasi ini, permintaan saya ialah 123.html, kemudian apabila permintaan mencapai apache, apache akan mula memadankan peraturan dari atas ke bawah:
Langkah pertama, padankanRewriteRule /([0-9]+ ) .html /test1.php?id=$1, mendapati perlawanan itu lulus, kerana tiada tanda untuk berhenti, jadi teruskan melaksanakan kod
Langkah kedua, padankanRewriteRule /(. *) /test2 .php?id=$1, didapati bahawa perlawanan telah diluluskan, kerana ia adalah peraturan terakhir dan ia adalah peraturan yang diluluskan, permintaan terakhir dihalakan ke halaman test2 .php?id=123.html 🎜 🎜Tetapi jika ya: 🎜 rrreee 🎜Selepas padanan pertama diluluskan dan tanda L ditemui, apache berhenti memadankan ke bawah dan terus menuju ke halaman test1.php?id=123 dan permintaan lain (untuk contoh: abc.html) akan terus memadankan peraturan kedua hanya apabila peraturan pertama gagal dan permintaan diarahkan ke test2.php?id=abc.html🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan