mod_rewrite, Sprachen und SEO
- Loewenherz
- Mitglied
- Beiträge: 624
- Registriert: 10.02.2003 20:11
- Wohnort: Saarlouis
- Kontaktdaten:
mod_rewrite, Sprachen und SEO
Hi,
Bekannte haben sich grade wegen einer vorhandenen mehrsprachigen Seite an mich gewandt, bei der sämtliche URLs in der Form http://www.domain.de/seitenname.php?sprache=de lauten. Google hat nichts davon indiziert, ähnlich wie bei ?id=. Ich überlege jetzt, wie es am schnellsten umzustricken wäre, zumal sie mittlerweile finanziell ziemlich am Boden sind.
Am einfachsten wäre vermutlich mod_rewrite. Hat jemand einen Vorschlag, wie das am sinnvollsten zu lösen wäre?
Bekannte haben sich grade wegen einer vorhandenen mehrsprachigen Seite an mich gewandt, bei der sämtliche URLs in der Form http://www.domain.de/seitenname.php?sprache=de lauten. Google hat nichts davon indiziert, ähnlich wie bei ?id=. Ich überlege jetzt, wie es am schnellsten umzustricken wäre, zumal sie mittlerweile finanziell ziemlich am Boden sind.
Am einfachsten wäre vermutlich mod_rewrite. Hat jemand einen Vorschlag, wie das am sinnvollsten zu lösen wäre?
Downloads für phpBB, die ich seit 2001 angeboten habe, gibt es nicht mehr - die Mitarbeit beim Übersetzer-Team von phpBB3 war mein letzter aktiver Beitrag zu phpBB, zeitlich geht leider nichts mehr. Aktuell blogge ich nur noch phasenweise auf SEO Scene.
Ceterum censeo Google esse delendam
Ceterum censeo Google esse delendam
- MagMo
- Ehemaliges Teammitglied
- Beiträge: 584
- Registriert: 30.10.2005 16:06
- Wohnort: Köln
- Kontaktdaten:
Hi,
das ist recht einfach zu machen.
Definiere für alle Sprachen eine 'Dateiendung':Die Variable $aktuelleSprache enthält die aktuelle Sprache des Besuchers (nomen est omen).
Dann musst du (leider) alle Links anpassen. Nach diesem Schema:
Und zum Schluss noch die .htaccess anpassen:Wenn du im Dateinamen noch andere Zeichen als Buchstaben und Zahlen verwendest, dann musst du obiges entsprechend ändern.
Das war's.
Jetzt sind aus den dynamischen Links statische geworden und die Links passen sich der Sprache des Benutzers an. Zudem haben jetzt deine Links die schöne Dateiendung .html.
Wenn du außer "sprache" noch welche Variablen übergibst, dann nicht vergessen die .htaccess entsprechend anzupassen.
Grüße
MagMo
das ist recht einfach zu machen.
Definiere für alle Sprachen eine 'Dateiendung':
Code: Alles auswählen
if ($aktuelleSprache == 'eng')
{ $DatEndung = '-eng.html'; }
else
{ $DatEndung = '-de.html'; }
Dann musst du (leider) alle Links anpassen. Nach diesem Schema:
Code: Alles auswählen
echo '<a href="index' . $DatEndung . '">Index</a>';
Code: Alles auswählen
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/([A-Za-z0-9]*)-eng\.html
RewriteRule (.*) /%1.php?sprache=eng [L]
RewriteCond %{REQUEST_URI} ^/([A-Za-z0-9]*)-de\.html
RewriteRule (.*) /%1.php?sprache=de [L]
Das war's.
Jetzt sind aus den dynamischen Links statische geworden und die Links passen sich der Sprache des Benutzers an. Zudem haben jetzt deine Links die schöne Dateiendung .html.
Wenn du außer "sprache" noch welche Variablen übergibst, dann nicht vergessen die .htaccess entsprechend anzupassen.
Grüße
MagMo
- Loewenherz
- Mitglied
- Beiträge: 624
- Registriert: 10.02.2003 20:11
- Wohnort: Saarlouis
- Kontaktdaten:
Danke für die Hinweise. Der Programmierer hat folgendes gemacht:
Vor dem Header die Anweisungen:
Die Links dann so:
Wenn ich deine Vorgehensweise richtig verstehe, erweitere ich nun wie folgt:
Und die Links? *grübel*
Vor dem Header die Anweisungen:
Code: Alles auswählen
<?php
if(!isset($_GET["sprache"])){
$sprache = "deut";
}else{
$sprache = $_GET["sprache"];
}
if($sprache == "deut"){
include("sprachen/deut.php");
$pfad = "deut";
}elseif($sprache == "engl"){
include("sprachen/engl.php");
$pfad = "engl";
}elseif($sprache == "span"){
include("sprachen/span.php");
$pfad = "span";
}elseif($sprache == "fran"){
include("sprachen/fran.php");
$pfad = "fran";
}elseif($sprache == "tsch"){
include("sprachen/tsch.php");
$pfad = "tsch";
}elseif($sprache == "ital"){
include("sprachen/ital.php");
$pfad = "ital";
}
?>
Code: Alles auswählen
<a href="unterseite.php?sprache=<?php echo $sprache;?>"
Code: Alles auswählen
if($sprache == "deut"){
include("sprachen/deut.php");
$pfad = "deut";
$DatEndung = '-de.html';
}elseif($sprache == "engl"){
include("sprachen/engl.php");
$pfad = "engl";
$DatEndung = '-en.html';
Zuletzt geändert von Loewenherz am 05.04.2006 13:56, insgesamt 1-mal geändert.
Downloads für phpBB, die ich seit 2001 angeboten habe, gibt es nicht mehr - die Mitarbeit beim Übersetzer-Team von phpBB3 war mein letzter aktiver Beitrag zu phpBB, zeitlich geht leider nichts mehr. Aktuell blogge ich nur noch phasenweise auf SEO Scene.
Ceterum censeo Google esse delendam
Ceterum censeo Google esse delendam
- MagMo
- Ehemaliges Teammitglied
- Beiträge: 584
- Registriert: 30.10.2005 16:06
- Wohnort: Köln
- Kontaktdaten:
Hi,
ändere die Links mal wie folgt:
Dann natürlich noch die .htaccess für alle Sprachen nach obigem Schema ändern.
Grüße
MagMo
ändere die Links mal wie folgt:
Code: Alles auswählen
<a href="unterseite-<?php echo $sprache;?>.html"
Grüße
MagMo
- Loewenherz
- Mitglied
- Beiträge: 624
- Registriert: 10.02.2003 20:11
- Wohnort: Saarlouis
- Kontaktdaten:
Super, vielen Dank! Ich werds die Tage mal testen.
Downloads für phpBB, die ich seit 2001 angeboten habe, gibt es nicht mehr - die Mitarbeit beim Übersetzer-Team von phpBB3 war mein letzter aktiver Beitrag zu phpBB, zeitlich geht leider nichts mehr. Aktuell blogge ich nur noch phasenweise auf SEO Scene.
Ceterum censeo Google esse delendam
Ceterum censeo Google esse delendam
- Loewenherz
- Mitglied
- Beiträge: 624
- Registriert: 10.02.2003 20:11
- Wohnort: Saarlouis
- Kontaktdaten:
So, ich habs mal getestet.
Zum einen schreibt mod_rewrite die Dateinamen nicht um. Es erscheint weiterhin dateiname.php?sprache=deut - dabei müsste meines Wissens bereits dateinname-de.html erscheinen.
Was mich nach beim Überarbeiten ebenfalls irritiert, ist die Tatsache, dass ich die Links ändern soll. Warum? Sie funktionieren doch intern und mod_rewrite schreibt sie dann um. Ein bereits nach obiger Angabe geänderter Link ergibt einen 404er, im Adressfenster erscheint .../dateiname-deut.html
MagMo, was meinst du dazu?
Und ja, der Webhoster unterstützt es, und nein, es geht nicht um phpBB, sonst hätte ich in einem anderen Board gepostet
Zum einen schreibt mod_rewrite die Dateinamen nicht um. Es erscheint weiterhin dateiname.php?sprache=deut - dabei müsste meines Wissens bereits dateinname-de.html erscheinen.
Was mich nach beim Überarbeiten ebenfalls irritiert, ist die Tatsache, dass ich die Links ändern soll. Warum? Sie funktionieren doch intern und mod_rewrite schreibt sie dann um. Ein bereits nach obiger Angabe geänderter Link ergibt einen 404er, im Adressfenster erscheint .../dateiname-deut.html
MagMo, was meinst du dazu?
Und ja, der Webhoster unterstützt es, und nein, es geht nicht um phpBB, sonst hätte ich in einem anderen Board gepostet

Downloads für phpBB, die ich seit 2001 angeboten habe, gibt es nicht mehr - die Mitarbeit beim Übersetzer-Team von phpBB3 war mein letzter aktiver Beitrag zu phpBB, zeitlich geht leider nichts mehr. Aktuell blogge ich nur noch phasenweise auf SEO Scene.
Ceterum censeo Google esse delendam
Ceterum censeo Google esse delendam