【发布时间】:2012-01-27 13:43:54
【问题描述】:
我知道这个问题已经被问过好几次了。但我无法让它工作。
我在我的 Ubuntu 服务器中安装了 Apache2 我还可以确认 mod_rewrite 是使用 phpinfo(); 安装的。我还在我的根文件夹 (/var/www/.htaccess) 中放置了一个名为 .htaccess 的文件。在我的 .htaccess 文件中,我粘贴以下代码:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^.*$ test.php
所以一切都被重定向到test.php
但它仍然不起作用。所以我检查了 /etc/apache2 下的 httpd.conf 文件。它完全是空的,没有代码行(这对我来说似乎有点奇怪)?!但是检查 Stackoverflow 的答案,httpd.conf 中至少应该有以下代码:
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Satisfy all
</Directory>
所以我将该代码粘贴到 httpd.conf 中。并使用sudo /etc/init.d/apache restart 重新启动 Apache。而且还是不行?
我还测试了打开文件 /sites-enabled/000-default 和 /sites-available/default,所有虚拟主机设置都位于其中,并在目录 /var/www 和 / 下更改为 AllowOverride All。 mod_rewrite 仍然不起作用。谁能帮帮我吗。这个问题已经困扰我一段时间了。
另外,我的 apache2.conf 文件也不起作用。我试着写一些废话。它仍然给我正常的结果,而不是 http 500 错误
【问题讨论】:
-
如果您使用的是标准配置,那么您的基本文档根设置将位于 /etc/apache2/sites-available/default 中(如果您正在寻找)。在那里你可以插入 AllowOverride All 这将允许通过 .htaccess 文件进行重写。
标签: php apache mod-rewrite