1

国コードを検出するためにgeopluginphpクラスを使用して、多言語をサポートするWebサイトを構築しています。これが私のジオロケートコードです:

//GEOLOCATE
$geoplugin = new geoPlugin(); 
$geoplugin->locate();
define('REAL_COUNTRY', strtoupper($geoplugin->countryCode));

//AVAILABLE COUNTRIES
function available_countries(){
    $countries_array = array();
    $sql = mysql_query("SELECT id FROM countries WHERE enabled = '1';") or die(mysql_error());
    while($row = mysql_fetch_array($sql)) array_push($countries_array, $row['id']);
    return $countries_array;
}

//RETURN COUNTRY CODE
function detect_language(){
    if(isset($_COOKIE['country'])) return $_COOKIE['country'];
    else if(isset($_SESSION['country'])) return $_SESSION['country'];
    else if(in_array(REAL_COUNTRY, available_countries())) return REAL_COUNTRY;
    else return 'EN';
}

返された国コードに基づいて、私のphpスクリプトはデータベースからコンテンツをロードします。

次のような形式のリンクが必要です。

英語サイト:sitename.com/contact
ドイツ語サイト:sitename.com/kontakt
スロベニア語サイト:sitename.com/kontakt


ドイツ語とスロベニア語のサイトのURLは同じですが、IPとgeopluginから返されたコードに基づいて異なるコンテンツをロードすることに注意してください。

このサイトはうまく機能しているが、私の懸念はグーグルや他の検索エンジンだ。Googleは「EN」以外の言語のページを見つけることがありますか、それとももっと古典的なアプローチを使用して、次のようなURLに言語IDを追加する方が良いでしょう:

英語サイト:sitename.com/ en / contact
ドイツ語サイト:sitename.com/ de / kontakt
スロベニア語サイト:sitename.com/ si / kontakt


ありがとう!

4

2 に答える 2

1

説明的な URL を使用することをお勧めします。どの検索エンジンでも 100% 異なる URL に基づいて作成されるため、混乱が解消されます。

各ページの META 情報も正しい言語に変更してください。これは、最初から言語を分類するのに役立ちます。

このアプローチを使用することで、サイトのどの部分がリンクされて検索エンジンで改​​善されても、ドメイン全体のランキングが向上し、SEO の取り組みが維持されます。

読み取り可能な URL は、あらゆる点でこの 10 年間の最良のアイデアです。

于 2013-04-04T18:06:15.823 に答える