我需要通过GET使用Yii多语言的其他解决方案来优化SEO


i need other solutions with Yii Multilanguage via GET to optimize SEO

我有一个问题,我在我的多语言网站上使用了一种翻译yii 1的方法,如下所示。对不起,如果我没有解释好,但我是新来的。

我认为负责构建url的类取决于组件文件夹中传播CUrlManager的所选语言

/ **
* We extend the class urlManager
* /
MyCUrlManager class extends CUrlManager
{
    public function createUrl ($ route, $ params = array (), $ ampersand = '&')
    {
        if (! isset ($ params ['language']))
        $ Params ['language'] = Yii :: app () -> language;
        return parent :: createUrl ($ route, $ params, $ ampersand);
    }
}

然后config/main我执行以下

'UrlManager' => array (
...
'Class' => 'application.components.MyCUrlManager'
...
)

建立语言​​在阵列配置中,

'SourceLanguage' => 'is',
'Language' => 'is',

在控制器中,我执行以下操作:

/ **
* Builder main controller
*param [String] $ id id driver father
*param [String] $ module referers
* /
public function __construct ($ id, $ module = null) {
parent :: __ construct ($ id, $ module);
Yii :: app () -> language = (isset ($ _ GET ['language'])) $ _ GET ['language']: Yii :: app () -> language;
}
 
/ **
* Method to create the url of the selected language
*param String $ lang [description]
*return [Type] [description]
* /
public function createMultilanguageReturnUrl ($ lang = 'en') {
$ Arr = array ('language' => $ lang);
 
if (count ($ _ GET)> 0) {
$ Arr = $ _GET;
$ Arr ['language'] = $ lang;
}
 
return $ this-> createUrl ('', $ arr);
}

并最终在链接上指示语言

$ this-> createMultilanguageReturnUrl ('en')

用CMenu制作菜单和子菜单,最后我在url 中找到了这样的东西

/mysite/home/index?Language=es

链接我所做的:http://daniarlandis.es/2014/02/19/yii-multilenguaje-mediante-get-para-optimizar-seo/

问题是,我在重定向视图时产生了很多错误,当我打开一个链接时,一个新的选项卡被放回默认语言EN,然后我想知道:

我想知道是否可以用会话变量来实现这个方法?如果它可以与数据列表一起实现?

我使用了这里提供的相同解决方案,这对我来说效果最好,但不是最佳

提前非常感谢您的帮助

您可以像TsUrlManager一样创建UrlManager。您可以将参数名称从_lang更改为language(如代码中所示)