【问题标题】:I cannot get rid of "component" part of SEF URL in Joomla我无法摆脱 Joomla 中 SEF URL 的“组件”部分
【发布时间】:2017-10-18 23:04:43
【问题描述】:

我创建了 5 个指向同一个 URL 的菜单项,即 index.php?option=com_hum&view=comunidad。

所有这些都加载了http://doamin/alias.html。这很好,但是当我在页面中显示菜单模块时。

另一方面,我有一个图标,需要放置指向第一个菜单项的链接,所以我添加了一个指向 JRoute::_('index.php?option=com_hum&view=comunidad') 的链接

当我加载页面时,图标的实际链接是http://domain/component/hum/comunidad.html。正确的应该是http://domain/muro.html,这是第一个带有“index.php?option=com_hum&view=comunidad”链接的菜单项。

有什么帮助吗?

这是 Joomla 3.3.3

【问题讨论】:

    标签: joomla3.0


    【解决方案1】:

    首先摆脱 J3.3.3 并更新我们现在使用 3.7.1!并改进了路由; 其次,更改您的手动链接,添加 Joomla 用于区分菜单项的 Itemid;所以你的网址应该是这样的:

    "_index.php?option=com_hum&view=comunidad&Itemid=343"
    

    打开菜单管理器就可以轻松找到Itemid,就是右边的数字(列ID)

    为了确保 url 的其余部分是正确的,Joomla 将 url 写在菜单项名称的正下方:

    【讨论】:

    • 如何在不硬编码的情况下获取 Itemid?通过方法调用或使用项目别名的东西?
    • 我已经硬编码了 Itemid 但现在 URL 是:domain/muro/comunidad.html。该项目的别名是“muro”,所以 URL 应该只是 domain/muro.html,事实上,当我使用这些 URL 中的任何一个时,会加载相同的页面,这从 SEO 和分析的角度来看是不好的。
    • 如果有多个菜单项具有相同的非sef url,您只需要硬编码Itemid;否则 Joomla 会自己解决。 “comunidad”是模板还是布局名称?它从何而来?如果将其添加到原始的非 sef url 中是否有效?
    • Comunidad 是我的自定义组件的视图。 Thar 视图有一个设置,允许决定加载哪个布局。所有这些菜单项都具有相同的视图,但布局设置不同。但是硬编码它,它起作用了,但是,是否可以通过项目别名来获取 itemid?
    • 恐怕你得从#__menu表中加载它,JRoute只有默认的“_”方法
    猜你喜欢
    • 2011-03-05
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2017-07-22
    • 1970-01-01
    • 2013-10-26
    相关资源
    最近更新 更多