我发现了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相同.
任何人都可以确认我对路由器逻辑的评估是否正确?
归档时间: |
|
查看次数: |
6785 次 |
最近记录: |