Hallo Martin
<?php $fehlt = array // Liste aller URLs, die umgeletet werden sollen ( '/shop/abteilung/superprodukt.html', '/shop/abteilung/top-angebot.html', '/shop/abteilung/knueller.html' ); // prüfen, ob ursprünglich angefragte URL im Array $fehlt vorkommt if (in_array($_SERVER['REQUEST_URI'], $fehlt)) { header('Location: http://example.net/suche'); // HTTP-Header für Status 301 mit Redirect senden exit; // Script beenden } header('HTTP/1.0 404 Not Found'); // HTTP-Header für Status 404 senden // Danach könnte eine zur Site passend ausgestaltete 404-Fehlerseite als gewöhnliches // HTML-Dokument folgen ?> <!DOCTYPE html> <html> ...
Meine Güte, das ist ja großartig. Danke vielmals!
Ginge es nicht so, dass man in das Array einfach die URLs schreibt, die umgeleitet werden sollen und dazu dann jeweils auch gleich die URL zu der umgeleitet werden soll? Das wäre für mich letztendlich einfacher zu handhaben später.
Obwohl, das hätte dann ja zur Folge, dass die Prüfung, ob die angefragte URL im Array $fehlt, keinen richtigen Sinn mehr macht. Weil ja auch die Ziel-URLs dann im Array stehen. Oder könnte man das irgendwie so lösen, dass jedes URL-Paar (angefragte URL / Ziel URL) in einer Zeile steht mit einem bestimmten Trennzeichen. Und die Prüfung erfolgt dann bei allen Zeilen nur bis zum Trennzeichen. Hmmmmmm :-)
Noch was anderes: Wie groß darf denn so ein Array werden? Ich frage, weil da ja letztendlich über 2000 URLs rein sollen.
Gruß Ingo