我已经在我的Mac(OSX 10.9)上build立了一个服务器,但它在错误日志中返回了一个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} [AZ] 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>
有任何想法吗?
AllowOverride All
不属于htaccess文件。 它在服务器配置(httpd.conf)中用来设置一个htaccess文件可以覆盖的服务器配置参数。 很显然,能够配置htaccess文件可以在htaccess文件中覆盖哪些参数是错误的。
从你的htaccess文件中删除它。 你已经在正确的地方在你的httpd.conf中定义了AllowOverride All
。
AllowOverride控制.htaccess-security和-behaviour,不能在.htaccess文件中设置。
从.htaccess中删除“AllowOverride All”,即所有。
把AllowOverride全部从你的.htaccess中取出。