Zwei Domains (Sprachen) ein Code

Wie wir alle wissen (sollten) ändert mod_rewrite keine Links im Script. Damit auch die Links auf Deiner Page auf die neuen "Rewrited URLs" zeigen bedarf es der Anpassung im Code. Fragen und Probleme rund um's Coding werden hier diskutiert.

Moderator: Super-Mod

Antworten
Edelsalami
.
.
Beiträge: 5
Registriert: 10.06.2009 11:49

Zwei Domains (Sprachen) ein Code

Beitrag von Edelsalami »

Ich habe zwei Domains, die je eine Sprache repräsentieren und den selben Prodgrammcode benutzen sollen.

Die Lösung besteht aus zwei Dateien; der .htaccess Datei die die URL's entgegen nimmt und das PHP Script index.php, welches die weitere Verarbeitung und die Ausgabe übernimmt.

Inhalt .htaccess Datei:

Code: Alles auswählen

RewriteEngine On
Options +FollowSymLinks

RewriteBase /

# Aufruf deutsche Version
RewriteCond %{HTTP_HOST}   ^deutsch\.dev [NC]
RewriteRule ^(.*)$         http://www.deutsch.dev/$1 [R=301,L]

# Aufruf englische Version
RewriteCond %{HTTP_HOST}   ^english\.dev [NC]
RewriteCond %{HTTP_HOST}   !^www\.deutsch\.dev [NC]
RewriteRule ^(.*)$         http://www.english.dev/$1 [R=301,L]

#Arbeite das Script ab
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
Inhalt index.php Datei:

Code: Alles auswählen

<?php 
$DE_Domain = "www.deutsch.dev";
$EN_Domain = "www.english.dev";
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>Multilingual Test</title></head>
<body>

<?php if($DE_Domain == $_SERVER['SERVER_NAME']){
	echo("Deutscher geht's nicht<br>");
}elseif($EN_Domain == $_SERVER['SERVER_NAME']){
	echo("More then english<br>");
}?>

</body>
</html>
So wird beim Aufruf der Domain: http://www.deutsch.dev "Deutscher geht's nicht" ausgegeben und ggf. ein fehlendes www. an den Domain-Namen angehängt, äquivalent der englische Aufruf.

Ich hoffe der eine oder andere findet es nützlich und kann es gebrauchen, dies ist primär ein Funktionsdummy.
Edelsalami
Antworten