【问题标题】:Mod_rewrite not working on Ubuntu Server (works locally, though)Mod_rewrite 不能在 Ubuntu 服务器上运行(虽然可以在本地运行)
【发布时间】:2012-08-29 15:14:41
【问题描述】:

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

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

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

sudo a2enmod rewrite

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

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

有什么想法吗?

【问题讨论】:

    标签: apache .htaccess mod-rewrite ubuntu wamp


    【解决方案1】:

    很可能是因为启用了 mod_rewrite 但.htaccess 文件被禁用了

    AllowOverride None
    

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

    将您的虚拟主机更改为:

    AllowOverride All
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 应将该页面的相关内容添加到答案中
      • 这不是理解,如果你有这个问题,请关注这个答案上的link
      【解决方案3】:

      启用 mod_rewrite

      使用

      激活 mod_rewrite 模块

      sudo a2enmod 重写

      然后重启apache

      sudo service apache2 重启

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

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

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

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

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

      重启 Apache

      sudo service apache2 重启

      【讨论】:

        猜你喜欢
        • 2018-03-01
        • 1970-01-01
        • 2021-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-22
        • 2017-08-09
        相关资源
        最近更新 更多