需要帮助找出我的 .htaccess 未被读取的问题

需要帮助找出我的 .htaccess 未被读取的问题

我尝试通过 .htaccess 文件使用 mod_rewrite,但遇到了一个大问题,.htaccess 文件似乎无法读取。该机器运行的是 Debian 5.0,并使用稳定的 apache2 包。

我已按照此页面上的说明进行操作:http://www.debian-administration.org/articles/136. 像这样启用 mod_rewrite:

a2enmod rewrite

在我的 /etc/apache2/apache2.conf 文件中我添加了以下内容:

<Directory "/var/www">
  AllowOverride ALL
  Options FollowSymLinks
</Directory>

在根目录中,我创建了一个 .htaccess 文件,其内容如下:

RewriteEngine on
RewriteRule ^test$ foo.html

我尝试了很多类似问题的答案中的建议,但都无济于事。访问 foo.com/test 时收到的错误消息是 404 页面未找到。所有文件都可以被所有人读取。直接访问 foo.html 时没有问题。我还尝试将垃圾放入另一个 .htaccess 中,看看 apache 是否会对此抱怨,但什么都没有改变。也许我太累了!

谢谢

答案1

如果您在访问包含垃圾的 .htaccess 文件的目录时没有收到 500 错误,则 Apache 没有读取您的 .htaccess 文件。

您是否在 /etc/apache2/sites-available/default 文件(或用于虚拟主机的任何文件)中定义了一个站点,该站点覆盖了该目录的 AllowOverride All 定义?

答案2

当您尝试调用“test”时,检查错误文件 /var/log/apache2/error.log,检查是否与正确的目录匹配。

答案3

我的 apache 服务器没有读取 htaccess,这也是一个问题,我发现我没有设置:

<Directory "YOUR_DIRECTORY">
  AllowOverride ALL
</Directory>

在我的 httpd.conf 目录中。但是我这样做了,并重新启动了 apache

apachetcl -k restart

htaccess 工作正常。

相关内容