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.yiiframew...or-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
Page 1 of 1
Url Seo Sito Multilingua
#4
Posted 17 April 2013 - 01:07 AM
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.
#5
Posted 17 April 2013 - 05:11 AM
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?
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?
#6
Posted 17 April 2013 - 01:17 PM
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.
#7
Posted 17 April 2013 - 05:19 PM
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
come faccio a fare il redirect di base per esempio al sito /it se non ho la lingua nell'url? grazie
#8
Posted 17 April 2013 - 06:58 PM
Prova a postare il codice che hai scritto. "non ci riesco" non mi fa capire che cosa hai tentato di fare.
#9
Posted 18 April 2013 - 02:40 AM
pardon
components/UrlManager.php:
components/Controller.php
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']; }
Share this topic:
Page 1 of 1