mod_rewrite, Sprachen und SEO

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.
Benutzeravatar
Loewenherz
Mitglied
Beiträge: 624
Registriert: 10.02.2003 20:11
Wohnort: Saarlouis
Kontaktdaten:

mod_rewrite, Sprachen und SEO

Beitrag von Loewenherz »

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?
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
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,

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'; }
Die Variable $aktuelleSprache enthält die aktuelle Sprache des Besuchers (nomen est omen).

Dann musst du (leider) alle Links anpassen. Nach diesem Schema:

Code: Alles auswählen

echo '<a href="index' . $DatEndung . '">Index</a>';
Und zum Schluss noch die .htaccess anpassen:

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]
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
Benutzeravatar
Loewenherz
Mitglied
Beiträge: 624
Registriert: 10.02.2003 20:11
Wohnort: Saarlouis
Kontaktdaten:

Beitrag von Loewenherz »

Danke für die Hinweise. Der Programmierer hat folgendes gemacht:

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";
}
?>
Die Links dann so:

Code: Alles auswählen

<a href="unterseite.php?sprache=<?php echo $sprache;?>"
Wenn ich deine Vorgehensweise richtig verstehe, erweitere ich nun wie folgt:

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';
Und die Links? *grübel*
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
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,

ändere die Links mal wie folgt:

Code: Alles auswählen

<a href="unterseite-<?php echo $sprache;?>.html"
Dann natürlich noch die .htaccess für alle Sprachen nach obigem Schema ändern.

Grüße
MagMo
Benutzeravatar
Loewenherz
Mitglied
Beiträge: 624
Registriert: 10.02.2003 20:11
Wohnort: Saarlouis
Kontaktdaten:

Beitrag von Loewenherz »

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
Benutzeravatar
Slytherin
Mitglied
Beiträge: 1771
Registriert: 11.03.2005 17:52
Wohnort: Hogwarts
Kontaktdaten:

Beitrag von Slytherin »

bzw. SEO URLs

Slytherin
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,
Slytherin hat geschrieben:bzw. SEO URLs
Das hilft ja bei phpBB. Aber obiges Problem sieht mir nicht unbedingt nach phpBB aus. :wink:

Grüße
MagMo
Benutzeravatar
Slytherin
Mitglied
Beiträge: 1771
Registriert: 11.03.2005 17:52
Wohnort: Hogwarts
Kontaktdaten:

Beitrag von Slytherin »

Okay, ich bin jetzt einfach mal davon ausgegangen, dass er phpBB gemeingt hat :wink:
Möglich, dass ich falsch liege.

Ausserdem muss man beachten, dass der Hoster mod_rewrite unterstützen muss.
(Freehoster wie beispielsweise Funpic.de unterstützen mod_rewrite nicht)

Slytherin
Benutzeravatar
Loewenherz
Mitglied
Beiträge: 624
Registriert: 10.02.2003 20:11
Wohnort: Saarlouis
Kontaktdaten:

Beitrag von Loewenherz »

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 ;-)
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
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Nein wenn du Links weiterhin über seite.php?lang=deu aufrufst ändert mod_rewrite daran nix.
Wenn du aber dann die .html Seite verlinkst die umgewandelt werden soll (sprich aufrufst) dann kann die sie auch so erreichbar gemacht werden.
Antworten

Zurück zu „Coding & Technik“