Tarayıcı dili dayalı diğer web kullanıcıları yönlendirmek

2 Cevap php

Ben bunu yapmak istiyorum:

if (user from other website, like google, or input our website URL directly in the browser)
{
//redirect according to browser languge
        if (!preg_match('/en-US/', $_SERVER['HTTP_USER_AGENT']))
        {
        wp_redirect("http://cn.gearor.com");
    }
}

Ben deyim, ben URL ve nasıl kontrol etmek için benim web sitesi veya diğer web sitelerine bulunuyor almak için nasıl bilmiyorum ilk yazmak nasıl bilmiyorum. Benim web eğer benim web değilse tarayıcı İngilizce ise, hiçbir şey yapmak, kontrol, değilse, http://cn.gearor.com yönlendirmek

2 Cevap

Gibi bir şey istiyorum:

if (!preg_match('%your_domain.tld%i', $_SERVER['HTTP_REFERER']))
{
    if (!preg_match('/en-us/i', $_SERVER['HTTP_ACCEPT_LANGUAGE']))
        // .. do your stuff here.
}

Ben HTTP_ACCEPT_LANGUAGE kullanmak için dil kontrol değişti, ve aynı zamanda harf duyarlı değil (Opera kullandığı en-us Firefox ve IE benim testlerde en-us kullanın).

Eğer DEFAULT dil için kontrol ise de /^en-us/i kullanarak düşünebiliriz. Dil dizeleri ayrılmış birden çok dil, virgül içerebilir.

$_SERVER['HTTP_REFERER'] bunu denetler sayfa açan tam URL. Eğer aradığınızı bilmek tek yolu olsa bu ayarlanacak garanti değil.

Ayrıca, kullanıcının dil için $_SERVER['HTTP_ACCEPT_LANGUAGE'] yerine $_SERVER['HTTP_USER_AGENT'] içinde kontrol etmek isteyebilirsiniz.

İşte full reference to the $_SERVER superglobal array. You should check the keys, especially those starting with HTTP_ olduğunu.