RewriteRules tidak berhenti dengan bendera [L]?

0

Mod menulis ulang sederhana di .htaccess. Jika saya membuka misalnya /lib/js/core/jquery.min.js, Apache2 mengambil aturan terakhir dan bukan yang pertama. Bagaimana saya bisa memperbaikinya?

RewriteEngine on
RewriteRule ^lib/js/core/(.+)$ core/lib/js/$1 [L,QSA]
RewriteRule ^(.+)$ index.php?path=$1 [L,QSA]

Selesaikan masalahnya, dengan menggunakan kembali tanda L yang pertama tanda bendera END

Jan
sumber

Jawaban:

0

RewriteRules harus diproses secara berurutan. Apakah Anda yakin itu benar-benar cocok dengan regex pertama? Coba tambahkan contoh garis miring terkemuka

RewriteRule ^/lib/js/core/...$
wangj
sumber
Saya ingin pencocokan regex pertama, tapi ini masalahnya. Sebagai tebasan pada akhirnya tidak tidak mendapatkan solusinya.
Jan
0

Ketika Anda menggunakan rewriterules dalam file .htaccess (yang saya dan orang-orang apache sangat tidak mendukung) Anda harus menyadari bahwa setiap aturan yang cocok akan menghasilkan subrequest, dan dengan demikian semua aturan akan diproses lagi. Karena aturan kedua cocok dengan semua, itu akan diterapkan selama subrequest ini.

Tidak dapat menghentikan subrequest ini terjadi tampaknya merupakan gangguan yang cukup besar bahwa bendera END diperkenalkan, tetapi ini membutuhkan Apache 2.4, yang belum tersebar luas.

Krist van Besien
sumber