启用在Ubuntu 12.04 htaccess的误差的Apache2 [英] Enable htaccess error on Ubuntu 12.04 with Apache2
问题描述
我试图让htaccess的。我改变了:
<目录/var/www/abc.biz/>
选择了FollowSymLinks指标多视图
设置AllowOverride无
订购允许,拒绝
允许所有
< /目录>
要:
<目录/var/www/abc.biz/>
选择了FollowSymLinks指标多视图
设置AllowOverride所有
订购允许,拒绝
允许所有
< /目录>
但我发现了500(内部服务器)的错误。为什么呢?
下面是我的的/ etc / apache2的/站点可用/默认
文件:
<虚拟主机*:80>
的ServerAdmin admin@abc.biz
DocumentRoot的/var/www/abc.biz
<目录/>
有FollowSymLinks
设置AllowOverride无
< /目录>
<目录/var/www/abc.biz/>
选择了FollowSymLinks指标多视图
设置AllowOverride无
订购允许,拒绝
允许所有
< /目录>
的ScriptAlias / cgi-bin目录/ / usr / lib目录/ cgi-bin目录/
<目录/ usr / lib目录/ cgi-bin目录>
设置AllowOverride无
选项+ ExecCGI -MultiViews + SymLinksIfOwnerMatch
订购允许,拒绝
所有允许
< /目录>
错误日志$ {APACHE_LOG_DIR} /error.log
#可能的值包括:调试,信息,通知,警告,错误,暴击,
#警觉,EMERG。
日志级别警告
的CustomLog $ {APACHE_LOG_DIR} /access.log组合
别名/ DOC /的/ usr /共享/ DOC /
<目录的/ usr /共享/ DOC />
选择多视图索引了FollowSymLinks
设置AllowOverride无
订单拒绝,允许
所有拒绝
从127.0.0.0/255.0.0.0允许:: 1/128
< /目录>
< /虚拟主机>
我想,你需要改变这部分你的/ etc / apache2的/站点可用/默认
的DocumentRoot /var/www/abc.biz
<目录/>
有FollowSymLinks
设置AllowOverride无
< /目录>
<目录/var/www/abc.biz/>
选择了FollowSymLinks指标多视图
设置AllowOverride无
订购允许,拒绝
允许所有
< /目录>
到
的DocumentRoot /var/www/abc.biz
<目录/>
有FollowSymLinks
设置AllowOverride所有
< /目录>
<目录/var/www/abc.biz/>
选择了FollowSymLinks指标多视图
设置AllowOverride所有
订购允许,拒绝
允许所有
< /目录>
由于在第一个<目录/>所有的AllowOverride
您允许重写设置你的.htaccess文件为整个Apache的,而且还需要在&LT来改变它;目录/var/www/abc.biz/ >所有的AllowOverride
为您的特定主机目录,在您的网站放置。
你也应该检查的.htaccess放在你的/var/www/abc.biz目录中的文件被正确writen,因为当您启用.htaccess文件覆盖全球的Apache设置错误的.htaccess文件会导致这样的错误。
I tried to enable htaccess. I changed:
<Directory /var/www/abc.biz/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
To:
<Directory /var/www/abc.biz/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
But I'm getting 500 (Internal Server) error. Why?
Here is my /etc/apache2/sites-available/default
file:
<VirtualHost *:80>
ServerAdmin admin@abc.biz
DocumentRoot /var/www/abc.biz
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/abc.biz/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
I think you need to change this part of your /etc/apache2/sites-available/default
DocumentRoot /var/www/abc.biz
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/abc.biz/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
to
DocumentRoot /var/www/abc.biz
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/abc.biz/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Because at first <Directory /> AllowOverride All
you allow to override settings with your .htaccess file for the whole apache, but also you need to change it at <Directory /var/www/abc.biz/> AllowOverride All
for your specific host directory, where your web site is placed.
Also you should check .htaccess files placed in your /var/www/abc.biz directory to be correctly writen, because when you enable .htaccess files to override global apache settings wrong .htaccess file causes such error.
这篇关于启用在Ubuntu 12.04 htaccess的误差的Apache2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!