Autor Zpráva
sxstem
Profil *
Dobrý den,

Prosím vás nevíte někdo jednoduchý skript pro rozpoznání jazyka a nasledné přesměrování na jinou url.

Příklad: v rootu mam stránky v EN a v podadresáři v CZ. potřebuji když CZ uživatel přijde na hl.doménu (root) aby byl automaticky přesměrován na podadresář kde je stránka v CZ.

Děkuji všem za pomoc
panhuhu
Profil
Zkus GeoIP
vertigo4
Profil
sxstem
jak píše panhuhu... třeba

if ($_SERVER["GEOIP_COUNTRY_CODE"]=="cz" ) header ("Location: cz/index.php");
        elseif  ($_SERVER["GEOIP_COUNTRY_CODE"]=="sk" ) header ("Location: sk/index.php");
       else header ("Location: index.php");
xy125
Profil
Něco takovýho používám já, kdo má nastaven prohlížeč na cz, nebo sk, zobrazí se mu čeština, ostatním angličtina


if (!isset($lg)) {
$lg = explode(",",$HTTP_ACCEPT_LANGUAGE);
$lg = StrToLower(Substr(chop($lg[0]),0,2));
}
if ($lg=="sk") $lg="cs";
if (($lg<>"en") && ($lg<>"cs")) $lg="en";
$url="http://" . $_SERVER['SERVER_NAME']."/".$lg."/";
header("HTTP/1.1 301 Moved Permanently");
header("Location: $url");
xy125
Profil
vertigo4, panhuhu

přes GEOIP bych to moc nedělal, i když jsem v cizině, pořád chci koukat na stránky v češtině, lepší je to podle nastavení prohlížeče
suky
Profil
xy125
Navic GeoIP nefunguje moc presne, treba kdyz jsem se pripojil v Pirne (u Drazdan) ukazovalo mi to, ze jsem v Mnichove ;)
vertigo4
Profil
suky
no tak ale "de" to snad vypiše?
djlj
Profil
suky
Záleží na aktuálnosti databáze.
suky
Profil
vertigo4
No jasne.

djlj
A jak to bere ty ip? Podle zprostredkovatele?
panhuhu
Profil
xy125
Samozřejmě se to dá pojistit i přes $HTTP_ACCEPT_LANGUAGE, ale jak píše vertigo4, záleží na aktuálnosti. Když si uděláš vlastní updater neměl by být problém. Jiný postup nalezneš i na phpmyvisites.us .
xy125
Profil
panhuhu
Nevidím jediný důvod, proč rozhodovat o tom, jakou jazykovou verzi použit, podle lokalizace, ať už je aktuální, nebo ne. To se přeci používá na něco jinýho. Až budu chtít uživatelům ukázat, kde se asi nachází, použiju GEOIP, Když jim chci nabídnout jazykovou verzi webu, podívám se, jaký jazyk preferují. Maximálně bych to tím GEOIP mohl pojistit, ale určitě bych GEOIP nebral jako hlavní.
sxstem
Profil *
Děkuji za vaše příspěvky.. Chtěl bych dotáhnout do konce variantu od xy125. Ale po použití jak uvádím níže mi přesměrovává www.example.com (zde je kod použit) jak EN i CZ prohlížeče do položky www.example.com/cz .
Potřebuji aby EN a ostatní prohlížeče nechal na www.example.cz a CZ (popřípadě sk) prohlížeče přesměroval do podadresáře www.example.com/cz

zde je použitý kód:

if (!isset($lg)) {
$lg = explode(",",$HTTP_ACCEPT_LANGUAGE);
$lg = StrToLower(Substr(chop($lg[0]),0,2));
}
if ($lg=="sk") $lg="cs";
if (($lg<>"en") && ($lg<>"cs")) $lg="cz";
$url="http://" . $_SERVER['SERVER_NAME']."/".$lg."/";
header("HTTP/1.1 301 Moved Permanently");
header("Location: $url");


Alternativa by byla, že EN a ostatní prohlížeče zanechá v www.example.com a CZ prohlížeče přesměruje na již hotovou doménu cz.example.com
sxstem
Profil *
OPRAVA: www.example.cz je špatně. přepsal jsem se. myslel jsem www.example.com

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: