0

我在 Joomla 中开发了一个组件!3,我使用JRoute::_()& router.php 使 url 对搜索引擎友好。像这样的东西:

/component/products/WIFI-IP-Phone/list-3

所以我决定/component/products 用一个干净的别名替换,并且我为组件主页创建了一个带有干净别名的菜单。现在,我在组件内的所有链接(用生成的JRoute::_() )都是这样的:/escene/WIFI-IP-Phone/list-3它很完美,正是我想要的,但是......我JRoute::_()在三个不同的模块中使用,我用它生成链接,问题当我在主页或除组件页面之外的任何其他页面时,这些模块中生成的链接与我在组件页面中时这些模块中生成的链接不同。

当我在主页或其他时: /component/products/WIFI-IP-Phone/list-3

当我在我的组件页面中时: /escene/WIFI-IP-Phone/list-3

任何机构都可以解释原因或帮助我制作所有网址,例如/escene/WIFI-IP-Phone/list-3

4

1 回答 1

1

这是因为当显示的页面是同一个组件时,您在组件 router.php 中编写的函数会针对链接执行。但是有一种方法可以完成这项任务。

1. First create a new menu in the menu manager and create all links in this menu.
2. Publish this menu but do not assign any position.
3. In this way you would get a sef url for each link.

if(JFactory::getConfig()->get('sef')) {
    echo 'My sef url';
} else {
    echo 'Dynamic url';
}

这样,Joomla 将通过存储的别名检测您的组件来进行您的 url 解析。如果您有任何进一步的疑问,请告诉我。

于 2014-05-14T09:30:20.617 回答