Joomla 3.x - 自己的组件 - 自定义搜索引擎优化

时间:2014-02-25 15:24:15

标签: php joomla seo

我的joomla组件seo url构建有问题。

我有以下链接:

$link = JRoute::_( 'index.php?option=com_expose$view=expose&id='.$result->id );
$link2 = JRoute::_( 'index.php?option=com_expose$view=search' );

seo url看起来像:

www.domain.com/component/expose/123 www.domain.com/component/search

我现在如何为网址创建自己的别名?我想要这样想:

www.domain.com/expose/the-beautiful-page

没有组件和id的标题。

router.php的

看起来像:

function ExposeBuildRoute( &$query )
{
       $segments = array();
       if(isset($query['view']))
       {
                $segments[] = $query['view'];
                unset( $query['view'] );
       }
       if(isset($query['id']))
       {
                $segments[] = $query['id'];
                unset( $query['id'] );
       };
       return $segments;
}

function ExposeParseRoute( $segments )
{       
       $vars = array();
       switch($segments[0])
       {
               case 'search':
                       $vars['view'] = 'search';
                       $id = explode( ':', $segments[1] );
                       $vars['id'] = (int) $id[0];
                       break;
               case 'expose':
                       $vars['view'] = 'expose';
                       $id = explode( ':', $segments[1] );
                       $vars['id'] = (int) $id[0];
                       break;
       }
       return $vars;
}

必须做什么,删除/ component /别名并用正确的标题替换id。

非常感谢。

1 个答案:

答案 0 :(得分:0)

问题是没有菜单项来查找组件。因为Joomla需要url中的组件参数。我认为没有办法删除网址中的组件部分。也许您应该在开发邮件列表https://groups.google.com/forum/#!forum/joomla-dev-general中询问。但我不认为这是可能的。

有一种方法可以使用系统插件http://docs.joomla.org/J2.5:Creating_a_System_Plugin_to_augment_JRouter修改路由器。但我认为这不会对你的情况有所帮助。