2012-04-28 14 views
1

私は主言語が英語である多言語ウェブサイト(スペイン語、英語、フランス語)をPHPで持っています。多言語.htaccessはサブドメインにリダイレクト

$_SESSION['idm']が 'en'に設定されている場合、ファイルには翻訳がロードされます。

私はこのようにそれを設定したい

:ユーザーの言語はスペイン語である場合

www.mydomain.commydomain.com - >es.mydomain.com

www.mydomain.com/video.php?id=3 - ユーザーの場合>es.mydomain.com/video.php?id=3

言語はフランス語です

www.mydomain.com and mydomain.com - >fr.mydomain.com

www.mydomain.com/video.php?id=3 - >fr.mydomain.com/video.php?id=3

上記

www.mydomain.com and mydomain.comのいずれでもない場合 - >en.mydomain.com

www.mydomain.com/video.php?id=3 - >en.mydomain.com/video.php?id=3

どうすればいいですか、この良いSEO賢明ですか? PHPで

+0

これは.htaccessを使用して実行できないと思います...あなたはPHPからそれを行う必要があります。 – Aziz

+0

@AzizそれではPHPでどうやってやるの? – Aleix

答えて

3

// check if the current domain is the generic one 
$req_domain = $_SERVER['SERVER_NAME']; 
if ($req_domain == 'www.mydomain.com' || $req_domain == 'mydomain.com') { 
    $subdomains = array ('fr' => 'fr.mydomain.com', 
         'es' => 'es.mydomain.com', 
         'en' => 'en.mydomain.com'); 


    // get the language from the session variable (if set), or use default 
    $lang = 'en'; // default language 
    if (isset($_SESSION['idm']) && isset($subdomains[$_SESSION['idm']])) 
    $lang = $_SESSION['idm']; // selected language 


    // redirect while maintaining the complete request URI 
    header('Location: http://' . $domains[$lang] . $_SERVER['REQUEST_URI']); 
    exit; 
} 
+0

これはとても便利でした!私はあなたに投票することができればと思います:) – Aleix

+0

各ドメインにはコード全体が含まれていますか?つまり、各サブドメインにはすべてのファイルが含まれますか? –

0

これは、検索エンジンからの言語のバリエーションを隠し、あなたの現在のセッションベースの方法よりもSEOのためのより良いです。

メインドメインにデフォルトの言語(en)を維持することは、わずかな変更の1つです。

はそれが最適に動作するには:あなたはすべてのクリックにリダイレクトを起こさないように

ページへのリンクに相対していることを確認してください。

hreflangメタデータをページに追加して、翻訳の場所を示します。

人を言語に強制しないでください。彼らは簡単に変更できることを確認してください。

関連する問題