Amis etc von dt. Seite auf englischsprachige Kopie umleiten?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
baerenwurm
Mitglied
Beiträge: 285
Registriert: 06.11.2002 16:29
Kontaktdaten:

Amis etc von dt. Seite auf englischsprachige Kopie umleiten?

Beitrag von baerenwurm »

Hallo!

Ich betreibe schon seit längerem ein recht bekanntes deutschsprachiges Forum, auf das sich gleichwohl auch mitunter Amis, Inder und Chinesen verirren ;)

Vor kurzem hab ich nun - auf einer neuen Domain, mit neuer Datenbank - eine englischsprachige Kopie meines Forums aufgesetzt.

Ist es möglich - ähnlich wie auf amazon.com - allen Nicht-Deutschen, -Ösis und -Schweizern (Bots ausgenommen) - mittels einem Layer oder einer JavaScript-Dialogbox ("Click "OK" to get to the international forums, "Abort" to visit the German site" o.ä.) - die Wahl zu lassen, sofern sie die Hauptseite meines deutschen Forums besuchen?

Vielen Dank!
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Drei Möglichkeiten sähe ich da.
  1. Du prüfst nur die TLD und wenn dort .com, .net, .us oder sowas steht, bietest Du per Alert (besser mittels einen dicken Links, Alerts sind eher nervig) an, auf das englische Pendant zu springen.
  2. Du baust eine Anbindung an eine Geodb und prüfst die IP auf Urpsrungsland. Dementsprechend dann der Link. (Sehr umständlich)
  3. Du schaust welche "accepted_languages" vom Browser geschickt werden. Steht da Englisch an erster Stelle, wird der Link sichtbar, oder die User werden automatisch weitergeleitet (automatische Weiterleitung ist nicht ganz die gute Lösung aus SEO-Sicht).
Grüße,
Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
DanielHeinrich
Mitglied
Beiträge: 188
Registriert: 05.04.2007 00:28
Wohnort: Bochum

Beitrag von DanielHeinrich »

Eventuell ist das hier für dich interessant: http://ip-to-country.webhosting.info/

HIER gibts die Datenbank als CSV-Datei
und
HIERfindest du ein Anwendungsbeispiel.

Eine zweite Möglichkeit die mir spontan einfällt: Schicke eine Whois-Anfrage an die RIR's und speicher das Ergebnis in einer Tabelle da sich dies vermultlich nicht sooo oft ändert(spart Traffic und zeit).
Allerdings kann man hier bei IP's von z.B. AOL auf die Sch...e fallen da AOL soweit ich weiss die ihr zur verfügung stehenden IP's weltweit verteilt werden und somit die Bestimmung des Herkunftslandes recht schwierig wird.


Zusammenfassend könnte man eventuell folgendes ausprobieren Lies die Bevorzugte Sprache aus und versuch an das Herkunftsland der IP heranzukommen(siehe oben). Wenn Sprache d. Herkunftslandes == Sprache -> Weiterleiten zu entsprechenden Seite
Sprache d. Herkunftslandes != Sprache -> nachfragen



wie gesagt, dies sollen nur Denkanstöße sein da das Thema an sich doch recht kompliziert ist.
Dennoch hoffe ich dass dir dieser Post weiterhiflt.

cu

Daniel
Benutzeravatar
baerenwurm
Mitglied
Beiträge: 285
Registriert: 06.11.2002 16:29
Kontaktdaten:

Beitrag von baerenwurm »

Danke euch zwei!

Hab mir folgendes mit GeoLite (intuitiv) zusammengebastelt, d.h. der Anfang meiner index.php sieht nun wie folgt aus:

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
require_once("includes/geoip.inc");

if($HTTP_GET_VARS['act'] == 'Arcade')
{
   require "newscore." .$phpEx;
   exit;
} 

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);

$country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);

geoip_close($gi);

if( $country_code != 'DE' && $country_code != 'AT' && $country_code != 'CH'  )
{
        header("HTTP/1.1 301 Moved Permanently");
        header('Location: http://www.englisches_forum.com');
}
Sollte das so funktionieren!? :roll: Oder soll das Zeugs über das Session Management!?

[e]
GeoIP Lite hat geschrieben:Returns US for all AOL users
:-?

[e2] Wie kann ich denn ausschließen, dass Suchmaschinen-Spiders weitergeleitet werden? Die haben wohl für gewöhnlich "US" als Ursprungsland!?
Benutzeravatar
rananarmo
Mitglied
Beiträge: 278
Registriert: 28.06.2006 20:40
Wohnort: Dessau
Kontaktdaten:

Beitrag von rananarmo »

Indem du über den User-Agent prüfst, ob es sich um einen Bot oder einen Browser handelt.
DanielHeinrich
Mitglied
Beiträge: 188
Registriert: 05.04.2007 00:28
Wohnort: Bochum

Beitrag von DanielHeinrich »

hi!

eventuell hilft dir diese Seite beim identifizieren der webrobots ;-)

cu

Daniel
Antworten

Zurück zu „Coding & Technik“