【发布时间】:2016-05-05 05:04:12
【问题描述】:
从最近的时间点开始(我相信自从我安装了 HikaShop 的付费版本以来)JRoute 为所有新菜单项和 404 错误提供了错误的 SEF url。
例如 JRoute::_('index.php?Itemid=<OLD MENU ITEMID>') 返回正确的 url 路径 /<MENU ITEM ALIAS>(并导致 NO 404 错误)...
...但是JRoute::_('index.php?Itemid=<NEW MENU ITEMID>')返回错误的url路径/Products/<MENU ITEM ALIAS(并导致404错误)
无论是否使用 HikaShop 组件,所有新菜单项的行为都可以看到 - 因此它可能与 HikaShop 无关。
我已经检查了 HikaShop 的 router.php 的输出,它似乎工作正常
我想进一步调试 JRoute,但在 Joomla 3.5 中找不到此类的定义位置。 Joomla 1.6 和 1.7 API 引用 methods.php,但我找不到 3.5 API 的这个文件
所以不知道如何继续......在我得到这个排序之前,网站无法使用......
【问题讨论】:
-
更多信息:我已经检查了 Joomla 数据库(表 _menu),它显示了在“路径”中添加了
/Products/而“别名”是可以的。所以看起来问题是在创建菜单项的时候出现的。在安装 HikaShop 后,在所有菜单项中都可以看到此行为,该 HikaShop 在 Joomla 表中创建自己的菜单项。 -
更多信息:在保存新菜单项时检查
save函数/administrator/components/com_menus/models/item.php中的$table 数据,菜单项名称、别名和路径似乎都是正确的,但是当我为链接到index.php?option=com_hikashop&ctrl=product的HikaShop 菜单项手动覆盖别名为ProductsXX时(HikaShop 在安装时将其设置为Products),然后我在创建的任何新菜单项的路径中得到/ProductsXX/- 所以它似乎确实与 HikaShop 问题有关