Php Magento 404产品和类别页面上的错误

Php Magento 404产品和类别页面上的错误,php,magento,Php,Magento,我从Magento的产品和类别页面上获得404个错误页面。所有其他页面正常工作(包括搜索和内容页面)。我已经多次重建所有缓存,现在将它们完全打开,我重新索引了所有内容,但都没有用。我不认为这是一个重写问题,因为通过完整url直接访问页面也会返回相同的错误,并且在searc、博客、cms等中重写工作正常 我现在花了大约6个小时试图修复这个bug,包括大量的谷歌搜索,在这里也发现了类似的问题(例如),但没有一个解决方案解决了我的问题 我认为问题一定出在我的布局XML文件或模板PHTML文件中。我已经

我从Magento的产品和类别页面上获得404个错误页面。所有其他页面正常工作(包括搜索和内容页面)。我已经多次重建所有缓存,现在将它们完全打开,我重新索引了所有内容,但都没有用。我不认为这是一个重写问题,因为通过完整url直接访问页面也会返回相同的错误,并且在searc、博客、cms等中重写工作正常

我现在花了大约6个小时试图修复这个bug,包括大量的谷歌搜索,在这里也发现了类似的问题(例如),但没有一个解决方案解决了我的问题

我认为问题一定出在我的布局XML文件或模板PHTML文件中。我已经尝试用基本Magento文件替换所有自定义文件,但是问题仍然存在

我已经在index.php中打开了开发人员模式并启用了完整日志记录(包括创建具有完整写入权限的日志文件)——仍然没有有用的错误消息,日志文件中也没有任何内容

现在已经非常绝望了——如果有人能提出任何进一步的尝试步骤,我将非常感激


您可以在这里看到问题:

检查类别URL是否正确。

我通过备份我的皮肤、布局和模板文件夹以及数据库,最终解决了这个问题,然后完全删除了magento安装并将其替换为干净的安装。在重新上传备份的文件夹和数据库后,我恢复了所有的自定义设置,错误消失了。我只能想,在某个时候,其中一个核心文件被错误地编辑了。

我们也遇到了类似的问题。根本原因是,我们为目录请求(硬拷贝)开发了一个小模块。模块工作正常,但是,我们的产品页面停止工作


因此,我们暂时停用了该模块,然后产品/类别页面开始工作。

确保在覆盖“Mage_目录”模块(产品或类别控制器)时,您的操作方式正确。错误就在我身上

我必须改变覆盖产品控制器的方式:

 <routers>
    <my_mudule>
       <use>standard</use>
       <args>
          <module>My_Module</module>
           <frontName>catalog</frontName>
       </args>
    </my_module>
 </routers>

标准
My_模块
目录


My_模块

在我们的例子中,问题与在平台之间迁移数据库时的权限有关,即在dev server到local。类别页面将加载,但产品详细信息页面将显示404,不会出现错误

问题的原因是,数据迁移试图创建视图,但由于mysqldump创建查询的方式,它没有这样做的权限。导航到后端的“产品”页面将不会显示任何库存

修复方法是手动创建视图。每次你设置一个新的docker时,这是非常烦人的。下面是创建库存视图的查询

记住重新索引并清除缓存。 php bin/magento索引器:重新索引 php bin/magento缓存:清除 php bin/magento缓存:刷新

CREATE
OR REPLACE
VIEW `inventory_stock_1` AS select
    distinct `legacy_stock_status`.`product_id` AS `product_id`,
    `legacy_stock_status`.`website_id` AS `website_id`,
    `legacy_stock_status`.`stock_id` AS `stock_id`,
    `legacy_stock_status`.`qty` AS `quantity`,
    `legacy_stock_status`.`stock_status` AS `is_salable`,
    `product`.`sku` AS `sku`
from
    ( `cataloginventory_stock_status` `legacy_stock_status`
join `catalog_product_entity` `product` on
        (( `legacy_stock_status`.`product_id` = `product`.`entity_id` )));

像这样的直接链接也不起作用。请检查产品和类别的STU(从根目录到子目录)。我检查了根目录>存储之间的关联,并且设置正确,如果您进行搜索(例如,尝试搜索“红色”),结果中确实会显示产品。有趣的挑战:)。你能从_magento\u dir\uvar/log/?中附加一段错误日志吗?这真的很奇怪-即使启用了完整的日志记录和调试,magento也不会记录任何错误!我已经检查了异常日志文件本身是否可以被apache完全读取。我也检查了系统日志,里面也没有任何相关信息,只是一周前的几条消息。我完全被难住了…这是整个系统日志文件,这只是一个twitter错误,因为设计师暂时使用了一个虚拟URL-我将其注释掉以阻止错误:2012-06-28222:24:35+00:00错误(3):警告:DOMDocument::load()[]:无法打开流:HTTP请求失败!HTTP/1.0 420第53行/home5/bluspace/public_html/albionwine staging/app/code/local/Creare/Latesttweet/Block/Latesttweet.php中的客户端错误(420)请查看上面的评论-问题也存在于产品中,即使直接访问,似乎也不是重写问题。以前URL运行得很好。我忘了问你-你所有的类别都是子类别,只是一个根类别?如果没有,或者您以前更改过,请检查当前商店的默认根目录。就在半个小时过去,我看到分类显示在顶部菜单中,但如果去看,就会抛出404页,原因就在那里。
CREATE
OR REPLACE
VIEW `inventory_stock_1` AS select
    distinct `legacy_stock_status`.`product_id` AS `product_id`,
    `legacy_stock_status`.`website_id` AS `website_id`,
    `legacy_stock_status`.`stock_id` AS `stock_id`,
    `legacy_stock_status`.`qty` AS `quantity`,
    `legacy_stock_status`.`stock_status` AS `is_salable`,
    `product`.`sku` AS `sku`
from
    ( `cataloginventory_stock_status` `legacy_stock_status`
join `catalog_product_entity` `product` on
        (( `legacy_stock_status`.`product_id` = `product`.`entity_id` )));