2013-11-22 9 views
5

Ich habe einen Server auf meinem Mac (OSX 10.9), aber es ist Rückgabe einen 500-Fehler mit der folgenden Meldung im Fehlerprotokoll einstellen ...500 Fehler auf Apache-Server - „AllowOverride hier nicht erlaubt“

[alert] [client ::1] /Users/user/Sites/mysite/.htaccess: AllowOverride not allowed here 

hier ist der Code in meiner .htaccess-Datei

Options +FollowSymLinks -MultiViews 
AllowOverride All 

# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteMap lc int:toLower 
RewriteCond %{REQUEST_URI} [A-Z] 
RewriteRule (.*) ${lc:$1} [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^i/(.*)/(.*)-(.*)$ /items/?id=$1&range=$2&type=$3 [L,QSA,NC] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^c/(.*)$ /category/?menu=$1 [L,QSA,NC] 

Und hier ist der entsprechende httpd.conf Code (lassen Sie mich wissen, ob es noch etwas, das helfen würde)

DocumentRoot "/Users/user/Sites/mysite" 

<Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
    Order deny,allow 
    Deny from all 
</Directory> 

<Directory "/Users/user/Sites/mysite"> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

Irgendwelche Ideen?

+2

Nehmen Sie die Direktive 'AllowOverride' aus Ihrer' .htaccess' Datei. Es ist nur erlaubt in einem '' Abschnitt –

Antwort

9

AllowOverride All gehört nicht in die htaccess-Datei. Es wird in der Server-Konfig (httpd.conf) verwendet, um festzulegen, was ein Server-Konfig-Parameter einer htaccess-Datei überschreiben kann. Natürlich wäre es falsch, konfigurieren zu können, welche Parameter htaccess-Dateien innerhalb von htaccess-Dateien überschreiben können.

Entfernen Sie es aus Ihrer Htaccess-Datei. Sie haben bereits AllowOverride All in Ihrer httpd.conf an den richtigen Stellen definiert.

+0

Super! Vielen Dank. Ich bekomme jetzt die gleiche Nachricht über die RewriteMap-Zeile. Wohin soll ich das bewegen? – Tom

+1

@Tom RewriteMaps können auch nicht in htaccess-Dateien definiert werden (Sie können sie aber in einer htacces-Datei verwenden). Sie müssen diese in der httpd.conf definieren, aber ** außerhalb der '' Container **. –

0

Take AllowOverride Alles aus Ihrem .htaccess.

2

AllowOverride steuert .htaccess-security and-behaviour und konnte nicht in .htaccess-Dateien festgelegt werden.

Drop "AllowOverride All" von. Htaccess, das ist alles.