Apakah Anda harus memulai ulang apache untuk membuat aturan penulisan ulang di .htaccess berlaku?


98

Saya telah memasukkan file .htaccess saya ke server produksi, tetapi file tersebut tidak berfungsi. Apakah restart menjadi langkah berikutnya, atau haruskah saya memeriksa yang lain.

Jawaban:


93

Mulai ulang tidak diperlukan untuk mengubah .htaccess. Ada yang salah.

Pastikan .htaccess Anda menyertakan pernyataan tersebut

RewriteEngine aktif

yang diperlukan meskipun itu juga ada di httpd.conf. Periksa juga apakah .htaccess dapat dibaca oleh proses httpd.
Periksa error_log - ini akan memberi tahu Anda tentang kesalahan apa pun dalam .htaccess if sedang digunakan. Menempatkan kesalahan sintaks yang disengaja di .htaccess adalah pemeriksaan yang baik untuk memastikan file sedang digunakan - Anda akan mendapatkan kesalahan 500 pada halaman mana pun dalam direktori yang sama.

Terakhir, Anda dapat mengaktifkan log penulisan ulang menggunakan perintah seperti berikut di httpd.conf Anda:

RewriteLog "logs / rewritelog"

RewriteLogLevel 7

File log yang dihasilkan akan memberi Anda detail berdarah tentang aturan penulisan ulang yang cocok dan cara menanganinya.


3
Ini agak ketinggalan jaman. Saya mengalami masalah serupa dan ingin men-debug penulisan ulang saya untuk kasus penggunaan tertentu. Saya mencoba metode ini, tetapi setelah sedikit frustrasi dan menggali, saya menemukan apa masalahnya. Ini untuk versi apache. Untuk apache2.4> menggantikan RewriteLog & LogLevel di atas dengan: LogLevel alert rewrite:trace7. Setelah memulai ulang apache , Anda akan melihat jejak di error.log Semoga membantu. http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
Casper Wilkes

52

Tidak :

Apache memungkinkan pengelolaan konfigurasi yang terdesentralisasi melalui file khusus yang ditempatkan di dalam pohon web. File khusus biasanya dipanggil .htaccess, tetapi nama apa pun dapat ditentukan di arahan AccessFileName ... Karena file .htaccess dibaca pada setiap permintaan, perubahan yang dibuat dalam file ini akan langsung berlaku ...


Jika Anda telah menambahkan nama pengguna ke 'Wajibkan pengguna' di file yang mendukung situs Anda, saya telah menemukan secara empiris bahwa Anda memang perlu memulai ulang. Seorang yang anggun melakukannya.
Ross

18

Dari dokumentasi apache: Umumnya, masalahnya adalah AllowOverride tidak disetel sedemikian rupa sehingga arahan konfigurasi Anda dijalankan. Pastikan bahwa Anda tidak memiliki AllowOverride None yang berlaku untuk cakupan file yang dimaksud. Pengujian yang baik untuk ini adalah dengan memasukkan sampah ke dalam file .htaccess Anda dan memuat ulang. Jika kesalahan server tidak dibuat, maka Anda hampir pasti memiliki AllowOverride None yang sedang berlaku.


1
Menjatuhkan tautan ke Apache - AllowOverride: httpd.apache.org/docs/2.2/mod/core.html#AllowOverride
scunliffe

2
Saya menambahkan baris ini "<directory /> </directory>" ke .htaccess saya untuk menghasilkan kesalahan dalam log. Ini akan mengatakan "<Direktori tidak diizinkan di sini" dan saya tahu itu membaca file saya.
Mnebuerquo

3

Hanya jika Anda belum menambahkan modul mod_rewrite ke Apache.

Anda hanya perlu me-restart Apache jika Anda mengubah file ".conf" Apache.



2

Dalam kasus. Htaccess restart tidak diperlukan jika tidak bekerja, kemungkinan termasuk.

  • AllowOverride Mungkin tidak disetel pengguna mana yang dapat disetel di dalam httpd.conf atau mungkin harus menghubungi admin server.

  • Periksa nama file .htaccess seharusnya .htaccess bukan htaccess.txt lihat di sini untuk panduan cara membuatnya.

  • Cobalah untuk menggunakan Options -Indexesatau deny allsemacam arahan sederhana untuk melihat apakah itu bekerja atau tidak.

  • bersihkan cache browser setiap kali jika memiliki aturan untuk pengalihan atau serupa jika pengalihan sebelumnya di-cache, tampaknya hal-hal tidak berfungsi.


0

Apa yang ada di .htaccess Anda? RewriteRules? Periksa apakah mod_rewrite diinstal dan diaktifkan.

Barang lain? Coba setel AllowOverride ke 'all' di direktori itu.

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.