我的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。
非常感谢。
答案 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修改路由器。但我认为这不会对你的情况有所帮助。