我发现了Magento路由逻辑的一个问题,我想看看是否有人可以证实这一点.
Magento堆栈路由器admin,standard,然后默认并一次处理一个.Magento根据URL获取当前模块名称(请参阅Mage_Core_Controller_Varien_Router_Standard::match()),然后检查模块是否应该由此路由器处理,基于与Magento配置中的frontName的匹配.如果找到匹配,则路由它.如果不匹配,则它继续到下一个路由器.
配置摘录:
<admin>
<routers>
<myroute>
<use>admin</use>
<args>
<module>MyNamespace_MyModule</module>
<frontName>myroute</frontName>
</args>
</myroute>
</routers>
</admin>
<frontend>
<routers>
<myroute>
<use>admin</use>
<args>
<module>MyNamespace_MyModule</module>
<frontName>myroute</frontName>
</args>
</myroute>
</routers>
</frontend>
这意味着如果您的前端路由器使用与管理路由器相同的名称,则管理路由器将始终首先匹配,即使在前端页面上也是如此.您的前端页面现在将按原样路由,如果是管理员页面,使用管理员base_url,这可能与您的商店的URL不同导致重定向损坏.
请注意,在Magento实例中,此问题不明显,其中管理基本URL与前端基本URL相同.
任何人都可以确认我对路由器逻辑的评估是否正确?
Magento 1.13为大多数索引添加了部分索引,并且能够将索引过程推迟到异步运行的cron作业.
那么我的问题是,是否存在一个现有的cron工作,或者这是我必须自己设置的东西?
文档不清楚:http: //www.magentocommerce.com/knowledge-base/entry/ee113-indexing#reindex-options
- 计划安排使用Magento cron作业重新编制索引时更新.
- 更改发生在分钟内或根据您的cron作业计划.
这让我相信它是每次cron运行时运行的现有进程.
我看到索引清理程序计划,但只显示清除更改日志表中的旧记录.它似乎没有实际做任何索引.
我似乎无法在运行这些索引的核心代码中找到一个cron作业.