Mod_rewrite不能在Ubuntu Server上运行(但在本地工作)

时间:2012-09-04 22:40:17

标签: apache .htaccess mod-rewrite ubuntu wamp

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

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

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

在devserver上验证它时
sudo a2enmod rewrite

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

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

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

很可能是因为mod_rewrite已启用但.htaccess文件已通过

禁用
AllowOverride None

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

将您的虚拟主机更改为:

AllowOverride All

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

启用mod_rewrite

使用

激活mod_rewrite模块
  

sudo a2enmod重写

并重新启动apache

  

sudo service apache2 restart

编辑虚拟主机以在.htaccess

中使用mod重写
  

sudo nano /etc/apache2/sites-available/000-default.conf

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

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

保存&amp;退出CTRL-X,“Y”并输入

重启Apache

  

sudo service apache2 restart