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

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/...$

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.