2013-11-22 4 views
5

私は私のMac(OSX 10.9)にサーバーを設定しているが、それはエラーログに次のメッセージが500エラーを返すことだ...Apacheサーバ上の500エラー - 「AllowOverrideのここでは許されない」

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

ここでコードが私の.htaccessファイルに

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] 

だし、ここでは関係のhttpd.confコードだ(役立つだろう何かがあるのなら、私に知らせて)

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> 

アイデア?

+2

あなたの '.htaccess'ファイルから' AllowOverride'指示文を取り出してください。 「」セクションでのみ許可されています –

答えて

9

AllowOverride Allはhtaccessファイルに属していません。サーバ設定(httpd.conf)でサーバ設定パラメータhtaccessファイルを上書きできるように設定するために使用されます。だから明らかに、htaccessファイル内のどのパラメータをhtaccessファイルから上書きできるかを設定できるのは間違いでしょう。

htaccessファイルから削除します。適切な場所にhttpd.confのAllowOverride Allを定義済みです。

+0

恐ろしいです!ありがとう。私は今、RewriteMap行について同じメッセージを得ています。どこを移動するのですか? – Tom

+1

@Tom RewriteMapsは、htaccessファイルでも定義することはできません(ただし、htaccesファイルで*使用することはできます)。これらをhttpd.confに定義する必要がありますが、** コンテナ**の外側に**を定義する必要があります。 –

0

Take AllowOverride .htaccessからすべてを取り出します。

2

AllowOverrideは.htaccess-securityと-behaviourを制御し、.htaccessファイル内では設定できませんでした。

"AllowOverride All"は.htaccessから削除します。

関連する問題