【问题标题】:Magento Use Web Server Rewrites Not Working At AllMagento 使用 Web 服务器重写根本不起作用
【发布时间】:2014-04-05 22:24:22
【问题描述】:

我刚刚将 Magento 1.8.1.0 放到了由 Digital Ocean 托管的服务器上。

我已将“使用 Web 服务器重写”设置为是,所有链接都会导致 404 Not Found。 Magento 的目录在 /var/www/sitename.com/public_html/。那里有一个默认的 Magento .htaccess。服务器还启用了mod_rewrite。 apache conf也有AllowOverride All

我已经尝试了大约 8 小时不同的 .htaccess 文件和配置文件,但似乎没有任何效果。

任何帮助将不胜感激!

【问题讨论】:

    标签: .htaccess magento mod-rewrite


    【解决方案1】:

    您是否为目录 URL 重写编制了索引或重新编制了索引? Magento Web 服务器重写实际上由 Magento 应用程序处理 - 它们不在 .htaccess 中处理,因此修改 .htaccess 将无济于事。

    我建议您恢复到原来的.htaccess,将您的 Magento 主题设置为默认主题,重新索引目录 URL 重写,清除缓存以进行良好的测量,然后重试。

    如果仍然无法正常工作,请检查您的数据库表 core_url_rewites。此表中应该有很多行 - 例如商店中的每种产品对应三个行 - 一些行将重写为类别,大多数行将重写为产品。这是一个示例产品重写行,可帮助您确定该表是否具有正确的数据:

    139349 2 product/2866/79 topcatname/subcatname/producturlkey.html catalog/product/view/id/2866/category/79 1 NULL NULL 79 2866

    如果该表看起来具有正确的数据,那么要继续跟踪此错误,您应该询问该函数:

    //file: app/core/Mage/Core/Controller/Varien/Front.php
    //class: Mage_Core_Controller_Varien_Front
        public function dispatch(){
          //...
        }
    

    【讨论】:

      【解决方案2】:

      启用模块重写并重新启动 Apache 对我有用。

      sudo a2enmod rewrite
      sudo service apache2 restart
      

      你可以看到你加载了哪些模块:

      apache2ctl -M
      

      如果启用了重写模块,应该会看到类似这样的内容:

      ....
      negotiation_module (shared)
      php5_module (shared)
      rewrite_module (shared)
      setenvif_module (shared)
      status_module (shared)
      ....
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-22
        • 2012-05-30
        • 2016-10-31
        相关资源
        最近更新 更多