Saya menjalankan server LAMP di Fedora 13 yang berfungsi dengan baik; namun, saya baru saja menambahkan file ".htaccess" ke folder dokumen situs saya saat ini yang sedang diabaikan sepenuhnya.
Saya sudah mencoba setengah lusin tes yang berbeda, termasuk yang ini:
RewriteEngine on
RewriteBase /
RewriteRule ^.*$ index.php
Tapi gambar dan semua halaman lainnya memuat dengan baik, dan file yang tidak ada masih 404. Saya juga mencoba ini:
order deny,allow
deny from all
Tetapi setiap halaman masih memuat dengan baik. Sekali lagi file .htaccess diabaikan 100%.
Kami menempatkan catatan virtualhost kami di /etc/httpd/conf.d/virtual.conf. Ini terlihat seperti ini:
NameVirtualHost *
<VirtualHost *>
ServerName intranet
DocumentRoot /var/www/default
<Directory "/var/www/default">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *>
ServerName ourwebsite.com
DocumentRoot /var/www/html/ourwebsite.com/docroot
<Directory "/var/www/html/ourwebsite.com/docroot">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Apa lagi yang bisa menyebabkan server kami benar-benar MENGABAIKAN .htaccess
file ??
Edit:
Saya mengubah file .htaccess ke atas untuk menunjukkan dengan lebih baik bahwa perubahan saya diabaikan. Perhatikan bahwa saya mencoba file .htaccess yang sama persis di server produksi dan berfungsi dengan baik.
Edit 2:
Oke, saya punya informasi baru! Hanya untuk tujuan pengujian, saya pergi dan mengubah sementara SETIAP arahan "AllowOverride" AllowOverride All
. Saya tahu bahwa entri Direktori pertama tampaknya mengalahkan yang lainnya:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Ketika saya mengubahnya AllowOverride All
, file .htaccess saya mulai berlaku. Ini seperti semua AllowOverride All
arahan lain dalam file konfigurasi saya diabaikan!
Apa yang Memberi ??
sumber
Periksa apakah ada "AllowOverride None" lain yang disajikan dalam 'httpd.conf' di atas deklarasi virtualhosts. Mungkin, Anda memiliki "AllowOverride None" di docroot.
sumber
dev.
. Namun server produksi berfungsi dengan baik, file .htaccess berperilaku tepat seperti yang diharapkan, dan server pengembangan hanya mengabaikan file .htaccess sama sekali.Tiga tebakan:
Sebenarnya ada spasi setelah koma di baris
order deny, allow
di.htaccess
? Apache tidak suka itu. Bagi saya di F13 saya mendapat 500-an.Apakah Anda memiliki
AccessFileName
arahan di mana saja?Jika Anda menggunakan selinux, apakah Anda memiliki konteks yang benar untuk file (
ls -lZ
)?sumber
AccessFileName
, saya akan melihat-lihat, tetapi seperti yang saya katakan dalam komentar saya pada jawaban Denis, konfigurasi apache untuk kedua server ini secara efektif identik.AccessFileName .htaccess
Saya punya ini di server baru, akhirnya menyadari bahwa mod-rewrite tidak diaktifkan secara default.
sumber