从Joomla 3网址中删除商品ID


9

我正在尝试从Joomla 3 URL中删除商品ID。我四处搜寻,回应在

components\com_content\router.php

改变01$advanced = $params->get('sef_advanced_link', 1);

在第38290行

并注释掉了

if (strpos($segments[0], ':') === false) {
    $vars['view'] = 'article';
    $vars['id'] = (int)$segments[0];
    return $vars;
}

我认为它在Joomla 2.5中效果很好,因为所有评论都提到了这一点。

但是在我的Joomla 3.3网站上,它对我没有作用。

在不为每篇文章创建菜单项的情况下如何实现?


你有什么错误吗?
德米特里·雷昆

只需为您的文章创建一个菜单链接。
saibbyweb 2014年

Lodder-是的,我得到了我想要的链接,但页面显示404错误而不是我的文章。
gag 2014年

Saibbyweb-我有超过100篇文章,并且数量将增长到500篇,所以我认为为所有这些菜单创建菜单不是一个好主意。
gag 2014年

如果扩展名K2是您的一个选择,那么您可以轻松实现这一目标。K2具有用于高级路由的选项以及所需的选项。您可以将现有的文章导入K2。检查我的K2 Blog和生成的readmore链接。另一个解决方案是使用sh404sef之类的东西或您等待此indiegogo.com/projects/advance-the-joomla-url-router/x/7216161
Joomla代理机构

Answers:


11

步骤1

编辑“ components / com_content / router.php”,然后继续执行步骤2。
(每次更新Joomla时,您可能都必须重新执行此步骤。)

第2步

(有两个地方需要执行此更改,一个在顶部附近,一个在中间)替换此:

$advanced = $params->get('sef_advanced_link', 0);

有了这个:

$advanced = $params->get('sef_advanced_link', 1);

第三步

更换

->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($db->quote($segment)));

->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($segment));

到此为止。


不客气@gag
saibbyweb 2014年

我在3.3.3站点上尝试了上述解决方案,但无济于事。整个站点将为空白。

5

对于不想因编辑Joomla代码而烦恼的人,我们将提到第三方SEF扩展提供了从SEF网址中删除ID的功能。

有人可以在JED中找到许多SEF扩展名:

例如SH404SEF是最流行和使用的Joomla扩展之一,具有悠久的历史并受到许多第三方组织的扩展支持。

至于更简单的解决方案,我最近遇到了一个新插件,该插件提供了一些功能,包括“从文章,类别和标签SEF url中删除ID”。简单易用的解决方案。

*注1:上述两个扩展都是付费下载。

*注2:JSE中还有一个类似的问题。


带这个,我是Direct Alias的粉丝,Direct Alias是一个仅删除文章/类别ID的插件,而没有其他任何东西。如果您不想使用整个SEF组件,这是一个不错的解决方案。 extensions.joomla.org/extensions/extension/site-management/sef/...
YellowWebMonkey

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.