在Joomla中找到一个没有别名的链接?

时间:2012-02-03 17:20:59

标签: php joomla

在Joomla 1.7上,Joomla在别名中允许使用逗号。用于安全性的URL中包含逗号的页面上的Mod_security 404。

Gavick News Show Pro是一个在主页上列出最新新闻的模块。它为内部页面创建的链接包括我们需要剥离的逗号别名。

在Gavick代码中,它以这种方式获得链接:

$link = ($news_id !== 0) ? JRoute::_(ContentHelperRoute::getArticleRoute($news_id, $news_cid)) : JRoute::_('index.php?option=com_user&view=login');

产生如下链接:

http://example.com/index.php?option=com_content&view=article&id=655:test,ting-here&catid=22:112th-news&Itemid=130

要注意,此站点未启用SEF,并且出于安全原因,不能启用SEF。希望有人能够帮助解决我们的问题,而不是讨论我们特定的安全要求。

还有另一种获取JRoute以外的$ link的方法,不会在标题中包含这些别名吗?示例代码会很棒。谢谢!

为简化起见,此代码始终执行相同的操作:

$link = JRoute::_(ContentHelperRoute::getArticleRoute($news_id, $news_cid));

1 个答案:

答案 0 :(得分:0)

如果没有使用SEF,则无需通过JRoute。 JRoute的重点是SEF URL。

您将代码更改为:

//Non SEF link
$ns_menuItemId = JSite::getMenu()->getActive();
$ns_link = "/index.php?option=com_content&view=article&id=$news_id&catid=$news_cid&itemid=$nbs_menuItemId";
$link = ($news_id !== 0) ? $ns_link : JRoute::_('index.php?option=com_user&view=login');