0

我在 joomla 中使用这个 php 代码来获取前缀语言 en es fr de ..

$doc->addCustomTag('<<link rel="canonical" href="http://www.mysite.com/'.$lang = str_replace('en', '', substr(JFactory::getLanguage()->getTag(), 0, 2)).'/pages.html"/>');

这段代码删除了后缀 en 以用我想要的任何内容替换它,但结果给了我一个像这样的页面http://www.mysite.com//pages.html 我如何删除 / 特别是 en 前缀

4

3 回答 3

1

我会做

$doc->addCustomTag('<link rel="canonical" href="http://www.mysite.com/'.str_replace('en/', '', substr(JFactory::getLanguage()->getTag(), 0, 2) . '/').'pages.html"/>');
于 2013-07-11T23:42:14.813 回答
0

您可以简单地分两步完成:

<?php
$lang = str_replace('en', '', substr(JFactory::getLanguage()->getTag(), 0, 2));
$url = 'http://www.mysite.com/'.$lang.'/pages.html';
$url = str_replace('//', '/', $url);
?>
<link rel="canonical" href="<?php echo $url; ?>" />
于 2013-07-11T23:40:25.587 回答
0

由于您要删除/专门用于前缀的en前缀,因此可以执行以下操作:

$lang = & JFactory::getLanguage();
$lang =  $lang->getName();
$lang = substr($lang, 0, 2);
if($lang !== 'en') // check if $lang is English
    $lang .= '/'; // append a slash
$url = 'http://www.mysite.com/'.($lang == 'en' ? '' : $lang.'/') . 'pages.html';
于 2013-07-11T23:51:50.127 回答