我的当地环境运作良好。在.htaccess中粘贴测试路线,它按预期工作(重新路由我到谷歌)。
RewriteEngine on
RewriteRule testpage\.html http://www.google.com [R]
我在开发服务器上粘贴了相同的东西(Unbutu 12.04),它只是给了我一个Not Found页面。当我通过运行:
在devserver上验证它时sudo a2enmod rewrite
它说“模块重写已经启用”。
编辑:它也出现在phpinfo()的“已加载模块”部分中,自安装以来,我已多次重启apache服务器。
有什么想法吗?
答案 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