1

我的本地环境运行良好。在 .htaccess 中粘贴了一条测试路线,它按预期工作(将我重新路由到谷歌)。

RewriteEngine on
RewriteRule testpage\.html http://www.google.com [R]

我在我的开发服务器(Unbutu 12.04)上粘贴了同样的东西,它只是给了我一个 Not Found 页面。当我通过运行在开发服务器上验证它时:

sudo a2enmod rewrite

它说“模块重写已启用”。

编辑:它也出现在 phpinfo() 的“加载模块”部分中,自从安装 apache 服务器以来,我已经多次重新启动它。

有任何想法吗?

4

3 回答 3

5

很可能是因为 mod_rewrite 已启用,但 .htaccess 文件已通过以下方式禁用

AllowOverride None

禁用检查 .htaccess 文件(这会给你一些性能提升,但你必须将你的 mod_rewrite 代码直接放在 apache 配置文件中)

将您的虚拟主机更改为:

AllowOverride All
于 2012-09-04T22:47:44.963 回答
3

对于不明白的人 - http://victorpotapov.ru/blog/vkljuchaem_mod_rewrite_v_apache/2013-11-03-61

在此页面上,您可以逐步看到您在 ubuntu 上的终端中输入

于 2013-11-26T08:43:02.707 回答
2

启用 mod_rewrite

激活 mod_rewrite 模块

sudo a2enmod 重写

并重新启动apache

sudo 服务 apache2 重启

编辑虚拟主机以在 .htaccess 中使用 mod rewrite

须藤纳米/etc/apache2/sites-available/000-default.conf

搜索“DocumentRoot /var/www/html”并添加以下行

<Directory "/var/www/html">
AllowOverride All
</Directory>

保存并退出 CTRL-X、“Y”并回车

重启阿帕奇

sudo 服务 apache2 重启

于 2014-10-14T16:29:10.987 回答