J'exécute un serveur LAMP sur Fedora 13 qui fonctionne bien; cependant, je viens d'ajouter un fichier ".htaccess" au dossier docroot de mon site actuel qui est complètement ignoré.
J'ai essayé une demi-douzaine de tests différents, dont celui-ci:
RewriteEngine on
RewriteBase /
RewriteRule ^.*$ index.php
Mais les images et toutes les autres pages se chargent bien et les fichiers inexistants sont toujours 404. J'ai également essayé ceci:
order deny,allow
deny from all
Mais chaque page se charge toujours très bien. Encore une fois, le fichier .htaccess est tout simplement ignoré à 100%.
Nous mettons nos enregistrements virtualhost dans /etc/httpd/conf.d/virtual.conf. Cela ressemble à ceci:
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>
Qu'est-ce qui pourrait faire que notre serveur IGNORE complètement le .htaccess
fichier ??
Modifier:
J'ai modifié le fichier .htaccess ci-dessus pour mieux démontrer que mes modifications sont ignorées. Notez que j'ai essayé exactement le même fichier .htaccess sur le serveur de production et cela a bien fonctionné.
Modifier 2:
OK, j'ai de nouvelles informations! Juste à des fins de test, j'ai parcouru et changé temporairement CHAQUE directive "AllowOverride" en AllowOverride All
. J'ai compris que la toute première entrée dans l'annuaire semblait l'emporter sur toutes les autres:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Quand j'ai changé ça en AllowOverride All
, mes fichiers .htaccess commencent à prendre effet. C'est comme si toutes les autres AllowOverride All
directives de mes fichiers de configuration étaient ignorées!
Ce qui donne??
la source
Vérifiez si tout autre "AllowOverride None" présenté dans 'httpd.conf' au-dessus de la déclaration virtualhosts. Vous avez probablement "AllowOverride None" dans docroot.
la source
dev.
. Pourtant, le serveur de production fonctionne correctement, les fichiers .htaccess se comportent exactement comme prévu et le serveur de développement ignore simplement le fichier .htaccess.Trois suppositions:
Y at - il en fait un espace après la virgule dans la ligne
order deny, allow
de.htaccess
? Apache n'aime pas ça. Pour moi sur F13, je gagnais 500s.As tu un
AccessFileName
directive quelque part?Si vous utilisez selinux, avez-vous le bon contexte pour le fichier (
ls -lZ
)?la source
AccessFileName
, je vais regarder autour de moi, mais comme je l'ai dit dans mon commentaire sur la réponse de Denis, la configuration d'apache pour ces deux serveurs est effectivement identique.AccessFileName .htaccess
J'ai eu cela sur un nouveau serveur, j'ai finalement réalisé que la réécriture de mod n'était pas activée par défaut.
la source