Saya memiliki dua masalah utama dengan mod_rewrite:
1) Tidak ada kesalahan berarti yang dilaporkan ketika saya memiliki aturan yang tidak valid
2) Untuk menguji setiap modifikasi dengan andal, saya harus menghapus cache chrome. Ini bukan ilmu roket, tapi saya harus menekan Ctrl + Shift + Delete lalu klik OK, lalu tutup jendela, dan muat ulang.
Saya ingin melihat apakah ada guru yang mau membagikan rahasia mereka untuk mengelola kode mod_rewrite secara efisien.
apache
mod-rewrite
puk
sumber
sumber
Jawaban:
Salah satu triknya adalah menyalakan log penulisan ulang. Untuk menyalakannya, coba baris ini di konfigurasi utama apache Anda atau file host virtual saat ini ( tidak di
.htaccess
):Sejak Apache httpd 2.4 mod_rewrite, RewriteLog dan arahan RewriteLogLevel telah sepenuhnya digantikan oleh konfigurasi logging per-modul yang baru.
sumber
RewriteEngine On
bagian di sana juga karena jika Anda hanya mengaktifkannya (seperti yang saya lakukan) dalam.htaccess
file, maka tidak ada yang akan dicatat.Arahan LogRewrite seperti yang disebutkan oleh Ben tidak tersedia lagi di Apache 2.4. Anda harus menggunakan arahan LogLevel sebagai gantinya. Misalnya
Lihat http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
sumber
tail -f error_log|fgrep '[rewrite:'
AllowOverride
diatur keAll
!Untuk resolusi URL dasar, gunakan pengambil baris perintah suka
wget
ataucurl
untuk melakukan pengujian, daripada browser manual. Maka Anda tidak perlu menghapus cache apa pun; hanya panah atas dan Masukkan di shell untuk menjalankan kembali tes mengambil Anda.sumber
Ada tester htaccess .
Ini menunjukkan kondisi mana yang diuji untuk URL tertentu, mana yang memenuhi kriteria dan aturan mana yang dijalankan.
Sepertinya ada beberapa gangguan.
sumber
Berdasarkan jawaban Ben Anda dapat melakukan hal berikut saat menjalankan apache di Linux (Debian dalam kasus saya).
Pertama buat file rewrite-log.load
/etc/apache2/mods-availabe/rewrite-log.load
Lalu masuk
diikuti oleh
Dan ketika Anda selesai dengan men-debug aturan penulisan ulang Anda
sumber
LogLevel warn rewrite:trace8
atau diLogLevel info rewrite:trace8
mana 8 dapat berupa angka dari 1-8