问题:已经修改apache2.config(非Ubuntu为 httpd.config)里的 AllowOverride All ,也已经把 .htaccess文件放入网站目录下 ,但无法访问网站(500错误,提示为服务器问题)
解决:
① apache2.config 默认时是否能访问网站。
② 查看 apache.config 文件(默认在 /etc/apache2/ 下)配置如下。
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
<
检查 AllowOverride All 是否配置于有 .htaccess文件 的目录下,因为这里有好几个 <Directory ... >
默认根目录设置为 None。
像我这样的话,.htaccess文件 只要在 /var/www/ 下就可以,包括了子目录,即 /var/www/html/.htaccess 也可以。
③ 检查 .htaccess 文件 是否配置错误
如下是我出错的文件:
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
Options -Indexes
ErrorDocument 404 /err/404.html
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.xxxxx\.cn)(:80)? [NC]
RewriteRule ^(.*) xxxxxx.cn/$1 [R=301,L]
order deny,allow
发现是Rewrite重定向时出错。
故你可以删去这三行,或是进行修改。
<Files ~ "^.(htaccess|htpasswd)$">
deny from all
</Files>
Options -Indexes
ErrorDocument 404 /err/404.html
order deny,allow
这样就可以了。