Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Länderauswahl Meta-Refresh umgehen

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
Chh1
PostRank 6
PostRank 6
Beiträge: 448
Registriert: 25.01.2012, 17:53
Wohnort: Würzburg

Beitrag von Chh1 » 19.12.2012, 10:21

Folgender Code ist aktuell auf der index.php (der Übersichtlichkeit halber gekürzt).

Code: Alles auswählen

<?PHP
//Automatische Sprachauswahl
if &#40;$_GET&#91;"site"&#93;==''&#41;&#123;

if&#40;$sprachauswahl=="de"&#41; &#123;  ?>
<meta http-equiv="refresh" content="0; URL=home.html">
<?PHP 
&#125;  
else if&#40;&#40;$sprachauswahl=="de-de"&#41;||&#40;$sprachauswahl=="de-DE"&#41;&#41; &#123;  ?>
<meta http-equiv="refresh" content="0; URL=home.html" />
<?PHP 
&#125;  
else if&#40;&#40;$sprachauswahl=="de-at"&#41;||&#40;$sprachauswahl=="de-AT"&#41;&#41; &#123;  ?>
<meta http-equiv="refresh" content="0; URL=home.html" />
<?PHP
&#125; 
else if&#40;$sprachauswahl=="fr"&#41; &#123;  ?>
<meta http-equiv="refresh" content="0; URL=fr_home.html" />
<?PHP
&#125; 

.
.
.

else&#123; ?>
<meta http-equiv="refresh" content="0; URL=en_home.html" />
<?PHP
&#125; &#125;
?>
Ich möchte die Meta-Refresh durch 301 ersetzen.

Funktioniert das so:

Code: Alles auswählen

<?PHP
//Automatische Sprachauswahl
if &#40;$_GET&#91;"site"&#93;==''&#41;&#123;

if&#40;$sprachauswahl=="de"&#41; &#123;  
header&#40;"HTTP/1.1 301 Moved Permanently"&#41;; 
header&#40;"Location&#58; http&#58;//www.domain.de/home.html"&#41;; 
&#125;  
else if&#40;&#40;$sprachauswahl=="de-de"&#41;||&#40;$sprachauswahl=="de-DE"&#41;&#41; &#123; 
header&#40;"HTTP/1.1 301 Moved Permanently"&#41;; 
header&#40;"Location&#58; http&#58;//www.domain.de/home.html"&#41;; 
&#125;  
else if&#40;$sprachauswahl=="fr"&#41; &#123;  
header&#40;"HTTP/1.1 301 Moved Permanently"&#41;; 
header&#40;"Location&#58; http&#58;//www.domain.de/fr_home.html"&#41;; 
&#125; 
.
.
.
else&#123; 
header&#40;"HTTP/1.1 301 Moved Permanently"&#41;; 
header&#40;"Location&#58; http&#58;//www.domain.de/en_home.html"&#41;; 
&#125; &#125;
?>
Oder wie würdet ihr das machen?

Habe irgendwie Bedenken ein 301 in eine if zu packen. Checkt das die Suchmaschine?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 19.12.2012, 14:20

In welchem Parameter ist denn die $sprachauswahl gespeichert? Die muss doch irgendwoher kommen?
Mir tut immer die Sicherheit etwas weh. Kenne zwar längst nicht alle Möglichkeiten für Angriffe, doch ein wenig filtern kann ja nie verkehrt sein.

Variante 1:

Code: Alles auswählen

if &#40;isset&#40;$_GET&#91;"sprachauswahl"&#93;&#41;&#41; and !empty&#40;$_GET&#91;"sprachauswahl"&#93;&#41;&#41; &#123;

	$sprachauswahl = $_GET&#91;"sprachauswahl"&#93;;
	$sprachauswahl = strtolower&#40;$sprachauswahl&#41;;
	$sprachauswahl = preg_replace&#40;"/&#91;a-z-&#93;/", "", $sprachauswahl&#41;;

	if&#40;$sprachauswahl == "de"&#41; &#123; 
	header&#40;"HTTP/1.1 301 Moved Permanently"&#41;;
	header&#40;"Location&#58; http&#58;//www.domain.de/home.html"&#41;;
	&#125; 
	/* ||&#40;$sprachauswahl=="de-DE"&#41; entfällt, da alles in Kleinbuchstaben umgewandelt wurde */
	elseif&#40;$sprachauswahl == "de-de"&#41; &#123;          
	header&#40;"HTTP/1.1 301 Moved Permanently"&#41;;
	header&#40;"Location&#58; http&#58;//www.domain.de/home.html"&#41;;
	&#125; 
	elseif&#40;$sprachauswahl == "fr"&#41; &#123; 
	header&#40;"HTTP/1.1 301 Moved Permanently"&#41;;
	header&#40;"Location&#58; http&#58;//www.domain.de/fr_home.html"&#41;;
	&#125;
	.
	.
	.
	else&#123;
	header&#40;"HTTP/1.1 301 Moved Permanently"&#41;;
	header&#40;"Location&#58; http&#58;//www.domain.de/en_home.html"&#41;;
   &#125; 
&#125; 
Sind bei einer Sprache mehr als zwei Buchstaben erforderlich?
Falls nicht, dann kürzen.

Variante 2:

Code: Alles auswählen

if &#40;isset&#40;$_GET&#91;"sprachauswahl"&#93;&#41;&#41; and !empty&#40;$_GET&#91;"sprachauswahl"&#93;&#41;&#41; &#123;

	$sprachauswahl = $_GET&#91;"sprachauswahl"&#93;;
	$sprachauswahl = strtolower&#40;$sprachauswahl&#41;;
	$sprachauswahl = preg_replace&#40;"/&#91;a-z-&#93;/", "", $sprachauswahl&#41;;
	$sprachauswahl = substr&#40;$sprachauswahl, 0, 2&#41;;	

	if&#40;$sprachauswahl == "de"&#41; &#123; 
	header&#40;"HTTP/1.1 301 Moved Permanently"&#41;;
	header&#40;"Location&#58; http&#58;//www.domain.de/home.html"&#41;;
	&#125;  
	else&#123;
	header&#40;"HTTP/1.1 301 Moved Permanently"&#41;;
	header&#40;"Location&#58; http&#58;//www.domain.de/".$sprachauswahl."_home.html"&#41;;
   &#125; 
&#125;

Chh1
PostRank 6
PostRank 6
Beiträge: 448
Registriert: 25.01.2012, 17:53
Wohnort: Würzburg

Beitrag von Chh1 » 09.01.2013, 14:10

Meine Frage zielte eher darauf ab, ob allgemein hier 301 die richtige Methode ist, oder ob ihr so etwas anders lösen würdet.