.htaccess 500 apache服务器错误-“此处不允许AllowOverride”

uubf1zoe  于 2022-12-19  发布在  Apache
关注(0)|答案(3)|浏览(218)

我已经在Mac(OSX 10.9)上设置了一个服务器,但它返回了一个500错误,错误日志中显示以下消息...

[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>

有什么想法吗?

cclgggtu

cclgggtu1#

AllowOverride All不属于htaccess文件,它在服务器配置文件(httpd.conf)中被用来设置htaccess文件可以覆盖的服务器配置参数,所以很明显,在htaccess文件中配置htaccess文件可以覆盖的参数是错误的。
从你的htaccess文件中删除它,你已经在httpd.conf中正确的地方定义了AllowOverride All

xtfmy6hx

xtfmy6hx2#

AllowOverride控制.htaccess的安全性和行为,并且不能在.htaccess本身内部设置。
.htaccess文件中删除AllowOverride All,仅此而已。

wj8zmpe1

wj8zmpe13#

从**.htaccess**文件中取出AllowOverride All

相关问题