Url Seo Sito Multilingua

Leggendo in giro ho capito che per i motori di ricerca è meglio mettere la lingua nell’url, quindi ho seguito questa guida che mi è sembrata la più recente,aggiornata e migliore:

http://www.yiiframework.com/wiki/294/seo-conform-multilingual-urls-language-selector-widget-i18n/

funziona tutto, solo che vorrei modificare una piccola cosa, oppure ditemi se è una cavolata.

la lingua di default è l’italiano e mi sembra brutto mettere it nell’url, essendo quella di default.

Secondo voi ha senso non metterla? o è meglio metterla sempre e comunque?

Perchè io volevo metterla nelle altre lingua ma quando è l’italiano non metterla. Cosa dite?

tipo: ITA -> www.sito.it

ENG -> www.sito.it/en

ecc ecc o è meglio anche per ITA-> www.sito.it/it???

grazie

E se cambi lingua di default?

cioè?

ma è meglio avere sempre nell’url la lingua o no?

Se cambi lingua www.miosito.com è indicizzato con un’altra lingua. Sinceramente non sono un seo, ma potendo metterei sempre la lingua nell’url, in caso di siti multilingua. Preferisco avere un pattern ben preciso e non un’eccezione di default.

ok.

posso chiederti un ultima cosa?

l’estensione linkata nel primo post è quella che ho usato e un po modificato (per es. non uso i cookie ma le sessioni).

Quella funziona bene, infatti tutti i link del sito hanno la lingua nell’url…

solo che se io accedo al sito con www.sito.com ovviamente non c’è nell’url la lingua (usa quella di default).

In questo caso non corro il rischio di duplicazione dei contenuti? www.sito.com e www.sito.com/it a questo punto sarebbero uguali.

Come posso fare? potrei togliere la lingua nell’url solo nella homepage e solo per la lingua di default? secondo te cos’è meglio?

In assenza di link, io creerei una splash page nella quale sia possibile selezionare la lingua che si vuole o eventualmente fare il redirect alla lingua del browser.

ho provato a fare il redirect di default nel caso appena detto nel codice della pagina linkata nel primo post, ma non ci riesco.

come faccio a fare il redirect di base per esempio al sito /it se non ho la lingua nell’url? grazie

Prova a postare il codice che hai scritto. "non ci riesco" non mi fa capire che cosa hai tentato di fare.

pardon

components/UrlManager.php:




<?php

class UrlManager extends CUrlManager

{

    public function createUrl($route,$params=array(),$ampersand='&')

    {

        if(!isset($params['language'])) {

            if(Yii::app()->user->hasState('language'))

                Yii::app()->language = Yii::app()->user->getState('language');

            else if(isset(Yii::app()->session['language']))

                Yii::app()->language = Yii::app()->session['language'];

            $params['language']=Yii::app()->language;

        }

        return parent::createUrl($route, $params, $ampersand);

    }

}

?>



components/Controller.php




public function __construct($id,$module=null){

		parent::__construct($id,$module);

		// If there is a post-request, redirect the application to the provided url of the selected language 

		if(isset($_POST['language'])) {

			$lang = $_POST['language'];

			$MultilangReturnUrl = $_POST[$lang];

			$this->redirect($MultilangReturnUrl);

		}

		// Set the application language if provided by GET, session or cookie

		if(isset($_GET['language'])) {

			Yii::app()->language = $_GET['language'];

			Yii::app()->user->setState('language', $_GET['language']);

			Yii::app()->session['language'] = $_GET['language']; 

		}

		else if (Yii::app()->user->hasState('language'))

			Yii::app()->language = Yii::app()->user->getState('language');

		else if(isset(Yii::app()->session['language']))

			Yii::app()->language = Yii::app()->session['language'];

	}