Ich verwende einen LAMP-Server unter Fedora 13, der einwandfrei funktioniert. Ich habe jedoch gerade eine ".htaccess" -Datei zum Docroot-Ordner meiner aktuellen Site hinzugefügt, die vollständig ignoriert wird.
Ich habe ein halbes Dutzend verschiedene Tests ausprobiert, darunter diesen:
RewriteEngine on
RewriteBase /
RewriteRule ^.*$ index.php
Aber Bilder und alle anderen Seiten laden gut, und nicht existierende Dateien noch 404. Ich habe auch Folgendes versucht:
order deny,allow
deny from all
Trotzdem wird jede Seite gut geladen. Auch hier wird die .htaccess-Datei einfach zu 100% ignoriert.
Wir legen unsere virtualhost-Datensätze in /etc/httpd/conf.d/virtual.conf ab. Es sieht aus wie das:
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>
Was könnte sonst dazu führen, dass unser Server die .htaccess
Datei komplett ignoriert ?
Bearbeiten:
Ich habe die .htaccess-Datei in oben geändert, um besser zu demonstrieren, dass meine Änderungen ignoriert werden. Beachten Sie, dass ich genau die gleiche .htaccess-Datei auf dem Produktionsserver ausprobiert habe, und es hat gut funktioniert.
Bearbeiten 2:
OK, ich habe neue Informationen! Nur zu Testzwecken habe ich JEDE "AllowOverride" -Richtlinie vorübergehend in geändert AllowOverride All
. Ich fand heraus, dass der allererste Verzeichniseintrag alle anderen zu überwältigen scheint:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Wenn ich dies in ändere, AllowOverride All
werden meine .htaccess-Dateien wirksam. Es ist so, als würden alle anderen AllowOverride All
Anweisungen in meinen Konfigurationsdateien ignoriert!
Was gibt??
quelle
Überprüfen Sie, ob in der Datei "httpd.conf" über der Deklaration von virtualhosts weitere "AllowOverride None" angegeben sind. Wahrscheinlich haben Sie "AllowOverride None" in Docroot.
quelle
dev.
. Der Produktionsserver funktioniert jedoch einwandfrei, die .htaccess-Dateien verhalten sich genau wie erwartet, und der Entwicklungsserver ignoriert die .htaccess-Datei einfach vollständig.Drei Vermutungen:
Gibt es eigentlich ein Leerzeichen nach dem Komma in der Zeile
order deny, allow
in.htaccess
? Apache mag das nicht. Für mich auf F13 bekam ich 500er.Haben Sie
AccessFileName
irgendwo eine Richtlinie?Wenn Sie Selinux verwenden, haben Sie den richtigen Kontext für die Datei (
ls -lZ
)?quelle
AccessFileName
werde ich schaue mich um, aber wie gesagt in meinem Kommentar auf Denis' Antwort, die Apache - Konfiguration für diese beiden Server ist effektiv identisch.AccessFileName .htaccess
Ich hatte dies auf einem neuen Server und stellte schließlich fest, dass Mod-Rewrite nicht standardmäßig aktiviert war.
quelle