Yii Framework Forum: Url Seo Sito Multilingua - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Url Seo Sito Multilingua Rate Topic: -----

#1 User is offline   nickyii 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 15-September 12

Posted 16 April 2013 - 09:17 AM

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
1

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 16 April 2013 - 10:47 AM

E se cambi lingua di default?
0

#3 User is offline   nickyii 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 15-September 12

Posted 16 April 2013 - 12:51 PM

cioè?
ma è meglio avere sempre nell'url la lingua o no?
1

#4 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

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.
0

#5 User is offline   nickyii 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 15-September 12

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?
1

#6 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

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.
0

#7 User is offline   nickyii 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 15-September 12

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
1

#8 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

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.
0

#9 User is offline   nickyii 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 15-September 12

Posted 18 April 2013 - 02:40 AM

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'];
	}	

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users