Teile von URL automatisch abändern

Gifty43

Erfahrenes Mitglied
Hallo

Ich habe folgendes Problem: Ich habe ein Script geschrieben, welches die Variable "?seite=x" in der URL hatte. Also z.B. index.php?seite=4.
Bei der neuen Version des Script heisst diese jetzt nicht mehr "seite", sondern "page" -> Bsp. index.php?page=4

Wenn jetzt ein User auf einer fremden Seite noch den alten Link mit "?seite=4" findet und darauf klickt, kommt er jetzt natürlich nicht mehr auf Seite 4, sondern automatisch auf die index.php.

Wie kann ich jetzt ein Script schreiben dass das "seite" automatisch in "page" abändert, WENN ein "seite" in der URL steht?

Für eure Lösungswege wär ich sehr dankbar.

Gruss
Gifty
 
mhm eventuell in dem du die gesammte URL einliesst , zerflederst und dann das wort seite mit page ersetzt mittels str_replace()

$_SERVER["REQUEST_URI"] = /Ordner/index.php?seite=1

alternativ änder doch einfach die URL im Script *G*
 
Das Problem ist, dass ich in der URL noch mehr Variablen stehen habe.

So könnte es heissen:
index.php?seite=2&pp=4 oder
index.php?pp=4&seite=2

Da müsste er einfach nur "seite" ersetzen können.
 
hi,

du könntest es vielleicht in dieser Richtung versuchen:
Code:
$ParameterNeu = ereg_replace("seite=", "page=", $_SERVER["QUERY_STRING"]);

hoffe das hilft dir weiter!
 
Am besten würde ich das so machen:

if($_REQUEST['seite']) {
$ParameterNeu = ereg_replace("seite=", "page=", $_SERVER["QUERY_STRING"]);
header("location: ".$ParameterNeu);
}
 
Sinnvoll wäre hier noch das Mitsenden des Statuscodes 301 („Moved Permanently“). Außerdem ist die Verwendung von [phpf]ereg_replace[/phpf] hier nicht nötig. [phpf]str_replace[/phpf] tut es auch. Desweiteren würde es wohl zu Fehlverhalten führen, wenn nur der abgeänderte „query string“ als neue URI übermittelt wird.

Mein Vorschlag:
PHP:
if (isset($_REQUEST['seite'])) {
	$newLocation = $_SERVER['SCRIPT_NAME'] . '?' .
		str_replace('seite=', 'page=', $_SERVER['QUERY_STRING']);
	header('Status: 301 Moved Permanently');
	header('Location: '.$newLocation);
	echo 'Page moved permanently to <a href="'.$newLocation.'">'.$newLocation.'</a>';
}
 
Zurück