我在我的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>
有什么想法吗?
答案 0 :(得分:9)
AllowOverride All
不属于htaccess文件。它在服务器配置(httpd.conf)中用于设置htaccess文件可以覆盖的服务器配置参数。很明显,能够配置htaccess文件可以在htaccess文件中覆盖的参数是错误的。
从htaccess文件中删除它。您已经在httpd.conf中的正确位置定义了AllowOverride All
。
答案 1 :(得分:2)
AllowOverride控制.htaccess-security和-behaviour,无法在.htaccess文件中设置。
从.htaccess中删除“AllowOverride All”,这就是全部。
答案 2 :(得分:0)
从你的.htaccess中取出AllowOverride All。