Получить ссылку в Joomla без псевдонима? - PullRequest
0 голосов
/ 03 февраля 2012

На Joomla 1.7, Joomla допускает запятые в псевдониме.Mod_security 404s на страницах с запятыми в URL для безопасности.

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 не включен на этом сайте и не может быть по соображениям безопасности.Надеемся, что вместо обсуждения наших конкретных требований безопасности кто-то сможет помочь решить нашу проблему.

Есть ли другой способ получить $ link, отличный от JRoute, который не будет включать эти псевдонимы в заголовок?Пример кода был бы отличным.Спасибо!

Примечание для упрощения, этот код всегда делает одно и то же:

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

1 Ответ

0 голосов
/ 04 февраля 2012

Если 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...