Tôi đang chạy một máy chủ LAMP trên Fedora 13 đang hoạt động tốt; tuy nhiên, tôi vừa thêm một tệp ".htaccess" vào thư mục docroot của trang hiện tại đang bị bỏ qua hoàn toàn.
Tôi đã thử một nửa tá các thử nghiệm khác nhau, bao gồm cả thử nghiệm này:
RewriteEngine on
RewriteBase /
RewriteRule ^.*$ index.php
Nhưng hình ảnh và tất cả các trang khác tải tốt và các tệp không tồn tại vẫn còn 404. Tôi cũng đã thử điều này:
order deny,allow
deny from all
Nhưng mỗi trang vẫn tải tốt. Một lần nữa, tập tin .htaccess đơn giản là bị bỏ qua 100%.
Chúng tôi đặt các bản ghi virtualhost của chúng tôi trong /etc/httpd/conf.d/virtual.conf. Nó trông như thế này:
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>
Điều gì khác có thể khiến máy chủ của chúng tôi hoàn toàn IGNORE .htaccess
tệp ??
Chỉnh sửa:
Tôi đã thay đổi tệp .htaccess thành ở trên để chứng minh rõ hơn rằng những thay đổi của tôi đang bị bỏ qua. Lưu ý rằng tôi đã thử chính xác tệp .htaccess trên máy chủ sản xuất và nó hoạt động tốt.
Chỉnh sửa 2:
OK, tôi có thông tin mới! Chỉ với mục đích thử nghiệm, tôi đã thực hiện và thay đổi tạm thời MỌI chỉ thị "AllowOverride" AllowOverride All
. Tôi phát hiện ra rằng mục nhập Thư mục đầu tiên dường như áp đảo tất cả những người khác:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Khi tôi thay đổi thành AllowOverride All
, các tệp .htaccess của tôi bắt đầu có hiệu lực. Nó giống như tất cả các AllowOverride All
chỉ thị khác trong tập tin cấu hình của tôi đang bị bỏ qua!
Đưa cái gì??