【问题标题】:Enable htaccess error on Ubuntu 12.04 with Apache2使用 Apache2 在 Ubuntu 12.04 上启用 htaccess 错误
【发布时间】:2012-06-19 07:27:13
【问题描述】:

我尝试启用 htaccess。我改变了:

<Directory /var/www/abc.biz/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

收件人:

<Directory /var/www/abc.biz/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

但我收到 500(内部服务器)错误。为什么?

这是我的/etc/apache2/sites-available/default 文件:

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

【问题讨论】:

  • 我们还能查看您的.htaccess 文件吗? mod_rewrite 是否启用?你检查过 Apache 错误日志吗?
  • 创建日志并打开日志文件查看器,然后将您的/var/log/apache2/error.log 添加到日志文件列表中。 (如果这是开发系统,请添加 access.log 和 rewrite.log)。您现在可以使用自己熟悉的 GUI 检查错误日志。
  • 谢谢。我尝试启用 mod_rewrite 并获得成功

标签: .htaccess apache2


【解决方案1】:

我认为您需要更改 /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>

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>

因为首先&lt;Directory /&gt; AllowOverride All 您允许使用您的 .htaccess 文件覆盖整个 apache 的设置,但您还需要在&lt;Directory /var/www/abc.biz/&gt; AllowOverride All 为您的网站所在的特定主机目录更改它。 此外,您应该检查放置在 /var/www/abc.biz 目录中的 .htaccess 文件是否正确写入,因为当您启用 .htaccess 文件以覆盖全局 apache 设置时,错误的 .htaccess 文件会导致此类错误。

【讨论】:

  • 在 ubuntu 13.10 中是 /etc/apache2/sites-available/000-default.conf !
  • 是的,因为 Ubuntu 13.10 使用的是 Apache 2.4。除了 000-default 已重命名为 000-default.conf 之外,您还会发现 设置不再存在。现在它们似乎都在 /etc/apache2/apache.conf
  • CRITICAL:对于 Apache 2.4,您不能使用 Order allow,denyallow from all 行(只需删除它们)。相反,请使用Require all granted(来自stackoverflow.com/a/18407768/368896)。
猜你喜欢
  • 1970-01-01
  • 2013-08-09
  • 2013-08-08
  • 2014-03-16
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
  • 1970-01-01
  • 2017-10-19
相关资源
最近更新 更多