500 Error on apache server - “AllowOverride not allowed here”

我是研究僧i 提交于 2019-11-30 05:40:45

问题


I have set up a server on my Mac (OSX 10.9) but it's returning a 500 error with the following message in the error log…

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

Here's the code in my .htaccess file

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]

And here's the relevant httpd.conf code (let me know if there's anything else that would help)

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>

Any ideas?


回答1:


AllowOverride All doesn't belong in the htaccess file. It's used in the server config (httpd.conf) to set what an server config parameters an htaccess file can override. So obviously, it would be wrong to be able to configure what parameters htaccess files can override from within htaccess files.

Remove it from your htaccess file. You've already defined AllowOverride All in your httpd.conf in the right places.




回答2:


AllowOverride controls .htaccess-security and -behaviour and could not be set inside of .htaccess files.

Drop "AllowOverride All" from .htaccess, thats all.




回答3:


Take AllowOverride All out of your .htaccess.



来源:https://stackoverflow.com/questions/20154232/500-error-on-apache-server-allowoverride-not-allowed-here

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!