ugrás a tartalomhoz

töbnyelvű honlap, látogató irányítás

lorko · 2007. Okt. 26. (P), 11.32
sziasztok,

szeretném felismerni az érkező látogatő böngészőjénk nyelvét,
és ha van olyan nyelven a honlap akkor egyből az induljon.
Konkrétabban:
Tehát ha magyar akkor a hu könyvtárban lévő index.html hívódik meg (hu/index.html),
ha pl. angol akkor en könyvtárban lévő index.html (en/index.html),
ha olyan jön amilyen nyelv nincs pl. német akkor a hu könyvtár index.html-jét adja.

Eddig egy perl futott a gyökérben és az dobot tovább, de nem
nagyon tetszik a megoldás, remélem ezt meglehet oldalni a szerverrel.

előre is köszönöm
 
1

user_agent

winston · 2007. Okt. 27. (Szo), 08.25
helló.

a dolog elég egyszerű: van egy u.n. user agent nevű szerverváltozó, amit a $_SERVER[HTTP_USER_AGENT] globális változóban találsz. ebből ki tudod szedni a böngészőből a preferált nyelv iso 639-1 kódját. ennek megfelelően dekódolod, hogy milyen nyelv, és kiküldesz egy headert, hogy 301 - Moved Permanently, és megadod, hogy mi a tartalom adott nyelvű elérhetősége. A böngésző aztán ezt az oldalt fogja lekérni, és akkor a megfelelő nyelven szolgáltad ki. persze sok megoldás van még, de ez egy viszonylag egyszerű. (a fentiek php-be vannak, de biztos máshonnan is megoldható)

mindenesetre fontos, hogy biztosíts lehetőséget arra, hogy ő maga válasszon nyelvet. ezt megoldhatod linkekkel, ami fontos, hogy figyelj arra, hogy ha ő választott, akkor ne irányítsd át automatikusan újra. ezt meg tudod úgy oldani, hogy kiküldesz cookie-t, hogy milyen nyelvet szeretne, és ha van, akkor arra irányítod.

szép napot,
winston
2

...hasonló képpen gondolom...

s_volenszki · 2007. Okt. 27. (Szo), 16.31
Sziasztok!

Én már egyszer majdnem hozzászóltam ehhez a topic-hoz, de figyelmesebben elolvastam, és azt állapítottam meg, hogy én kevés vagyok ide! Ugyan is a
remélem ezt meglehet oldani a szerverrel
mondat egy kicsit elbizonytalanított!

Mivel az én viszonyom a szerverekkel többnyire csak érintőleges, azért én feltenném a kérdést a téma indítónak:

Te konkrétan arra gondolsz, hogy a szerver, ami akár mi is lehet (Apache, IIS), konfigurálva legyen erre a képességre?

Azt tudom, hogy van IP tiltás, ami egy fajta IP szűrés (gondolom) bizonyára erre lehetne alapozni egy esetleges IP alapú átirányítást, de én ehhez kevés vagyok!

Szerintem ennél sokkal egyszerűbb szerver oldali programozási nyelvben letudni! Neked is az volt, ha jól értettem (pearl)?

s_volenszki
3

apache

winston · 2007. Okt. 28. (V), 11.29
végülis, mint szerver felé érkező böngésző adat, asszem talán el lehet kapni az apache-ból a user-agent-et, és ki is lehet parseolni belőle a nyelvet (ezt most könyökből mondom, nem néztem utána konkrétan), DE nagyon sok szívás lesz vele. oké, tegyük fel, hogy kiparseoltad, és sikerült olyan rewrite rule-t írni, ami mondjuk a domain.tld/{kiparsolt nyelv iso kódja}/oldal.html felé dob, de ez felvet több problémát: nincsenek lekezlve a headerek (márpedig mivel egy url alatt fog látszódni, a google nem fog indexelni, csak egyet, várhatólag az angolt ugye), aztán felmerül a probléma, hogy a user agent mondjuk egy mobilos böngészőnél egész más lehet, ez határozottan megnehezíti a parseolást. és végül, de nem utolsó sorban: a user-t rákényszeríted a böngészőben megadott (vagy ip alapján kitalált, akár, mert ezt is lehet) nyelvre. de mi van, ha ő nem olyan nyelven akarja olvasni? tegyük fel, hogy kimegyek törökországba, és egy netkávézóból magyarul szeretném olvasni az oldalt. akkor mi van? nem hiszem, hogy nekiállok állítgatni a böngészőt (ha van rá lehetőség egyátalán, és nem egy kihelyezett terminálról netezek), inkább hagyom az oldalt, és vissza se nézek. ez szerintem http szerverben (apacheról beszélek, azt ismerem, a többibe nincsenek mélyreható ismerteim, szóval ha azokban van valami lehetőség, akkor javítsatok ki) már nem megvalósítható.
szóval részemről ajánlom neked, hogy valami szerveroldali nyelvet (php, ruby, java, perl, python, asp... van választék) vess be a feladatra, már csak azért is, mert nem hiszem, hogy kézzel akarod legyártani az azonos design-ű és felépítésű oldalak tömkelegét, mikor csak a tartalom-szüveg változik.

w.

szerk.: ez igazából nem S_volenszki hozzászólására válasz, csak a gondolatmenet folytatása, bocs, ha zavaros
4

eddig szerver oldali script volt

lorko · 2007. Okt. 29. (H), 11.31
eddig szerver oldali nyelvel oldottam meg, egy perl dobott tovább arra a nyelvre amelyre kelett,
természetesen a látogató a későbiekben végig tud nyelvet váltani.
De ez nem probléma kereseőoptimalizálásnál?
(mert hogy ott nem adok meg se title-t, se semmit(a scriptben))
Emiat szerettem volna ha apatch tud tovább dobni.

Az egész mögött természetesen tartalomkezelő van, ami statikus html-eket generál, az alábbi könyvtárstruktúrában:
/hu/index.html
/hu/kapcsolat.html

/en/index.html
/en/contact.html

tehát megtehetném, hogy legyen egy alapnyelv, mondjuk a magyar, és azt dublán kiteszem, de mint tudjuk a duplikált tartalom nem jó pont a keresők szempontjából.
5

nem probléma

winston · 2007. Okt. 29. (H), 21.17
nem, a google nem fog haragudni, ha megfelelő headerekkel irányítod át. az apacheval ugyan ott vagy amúgyegyébként ilyen szempontból. az, hogy mi dob át, az teljesen mindegy ebből a szempontból, a fő, hogy mit lát ebből a böngésző.

végsősoron: legyen a sima oldal egy "ugróoldal", ami mindenféleképpen redirektel egy /nyelv/... oldalra, HA nem rögtön nyelv-es oldalra érkezett. ennyi. ekkor a googlenek se lesz baja, mindent le tud indexelni, aki akar, az az adott nyelvű oldalra megy, és ha meg csak nyelv nélkül adja meg a domaint, akkor valami alapján (http agent, ip) átirányít a megfelelő headerrel.