Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Joomla中生成url友好?_Php_Url_Joomla_Sef - Fatal编程技术网

Php 如何在Joomla中生成url友好?

Php 如何在Joomla中生成url友好?,php,url,joomla,sef,Php,Url,Joomla,Sef,我对joomla 1.5友好url有一个问题(实际上不太友好) 我现在没有使用SEF(我应该吗?) 这是我的问题 我有一些类别和部分。每个都有别名 因此,我可以访问www.myxyz.com/news查看所有新闻类别/ 要检查生成的url将成为的文章,请执行以下操作: www.myxyz.com/news/10-local-news-title-alias 我不知道joomla是如何生成这个url的。在我的模板中,我需要生成一些特定文章的链接 因此,我在模板中创建了一个帮助器: // help

我对joomla 1.5友好url有一个问题(实际上不太友好) 我现在没有使用SEF(我应该吗?)

这是我的问题

我有一些类别和部分。每个都有别名

因此,我可以访问www.myxyz.com/news查看所有新闻类别/

要检查生成的url将成为的文章,请执行以下操作: www.myxyz.com/news/10-local-news-title-alias

我不知道joomla是如何生成这个url的。在我的模板中,我需要生成一些特定文章的链接

因此,我在模板中创建了一个帮助器:


// helper to get alias in mainMenu ... alias must be unique 
function getMainMenu($menuAlias){
    $items = &JSite::getMenu();
    // Get Menu Items
    $rows = $items->getItems('alias', $menuAlias);
    if($rows){
        //$result = JRoute::_(JURI::base().$rows[0]->link);
        $result= JURI::base().substr(JRoute::_($rows[0]->link), strlen(JURI::base(true)) + 1);
        return $result;
    }else{
        return JURI::base() ;// aka not found
    }
}
但是当我进入www.myabc.com/news/7-local-news-alias这样的页面时 url将变得混乱,并更改为错误的url


我应该为joomla url友好使用SEF吗?

您应该在代码中使用普通url。当你打开SEF joomla时!将自动将您创建的所有链接转换为SEF url,当收到请求时,它将为您将它们还原为常规url…

您只需在代码中使用普通url即可。当你打开SEF joomla时!将自动将您创建的所有链接转换为SEF url,当收到请求时,它将为您将它们还原为常规url…

这有点复杂,但链接到SEF url的正确方法是使用原始的非SEF链接。您将需要:

  • 文章的ID
  • 您所在部分的菜单项的Itemid(例如链接到文章博客布局的菜单项等)
然后您只需链接到:

index.php?option=com_content&view=article&id=42&Itemid=3
其中42是文章ID,3是菜单ID。您的链接将类似于:

/section-alias/42-the-article-alias
如果您错过了Itemid,您的链接将如下所示(我认为):


这有点复杂,但是链接到SEF URL的正确方法是使用原始的非SEF链接。您将需要:

  • 文章的ID
  • 您所在部分的菜单项的Itemid(例如链接到文章博客布局的菜单项等)
然后您只需链接到:

index.php?option=com_content&view=article&id=42&Itemid=3
其中42是文章ID,3是菜单ID。您的链接将类似于:

/section-alias/42-the-article-alias
如果您错过了Itemid,您的链接将如下所示(我认为):


顺便说一句,你的“joomla”标签上的“o”太多了。顺便说一句,你的“joomla”标签上的“o”太多了