PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ordner umziehen - Forwarding für beliebige Unterverzeichnisse/Ressourcen?



~Gh05t~
06-06-2008, 15:01
Hallo zusammen,
ich habe den Auftrag einen Ordner auf dem Web-Server eines Lehrstuhls unserer Uni umzubenennen. Dieser Ordner enthält ein paar Unterordner mit jewails nur einer Index-HTML Seiten und sonstigen Ressourcen wie Bilder und PDF-Dateien.
Verwaltet wurde dieser Ordner bis her über einen Zope-Server (ein Webserver mit einer sehr einfache Art CMS).

Nun ergibt sich aber das Problem, dass auf dem Rest der Homepage eine unüberschaubare Menge Links auf die Inhalte dieses Ordners sind, die sich nicht so leicht finden lassen (da Zope die Daten in einer eigenen Datenbank speichert).

Ich habe nun den bestehenden Ordner umbenannt und einen Ordner mit dem alten Namen unter Apache erstellt. Darin habe ich folgendes Script erstellt:

<?PHP
$forward_domain = "http://.../neuer_ordner";
$email_admin = "admin@....de";
$email_server = "Webserver";
$referer = $_SERVER["HTTP_REFERER"];
if($referer != "") {
mail($email_admin, "Falscher Link","Es befindet sich ein Falscher Link auf der Seite $referer","from:$email_server");
}
header("Location: $forward_domain");
?>
Dieses Script macht also eine Weiterleitung auf den neuen Ordner und mailt mir, auf welcher Seite der falsche Link war.

Leider funktioniert dieses Script nur für die Index-Seite, nicht für sonstige Ressourcen. Zum Glück gibts fast nur Index-Seiten (auch in den Unterverzeichnissen des Ordners, das ist irgendwie eine günstige Struktur bei Zope), also hab ich das Script etwas angepasst auch für die Unterordner erstellt. HTML-Seiten nicht mehr so das Problem.

Hat jemand eine Idee, wie ich das Script so ändern könnte, das es für Zugriffe auf beliebige Ressourcen im alten Ordner und Unterordnern funktioniert?

Ist es möglich, dass Suchmaschinen trotz Weiterleitung den neuen Eintrag übernehmen?

Danke für eure Hilfe!

PS: Ich habe vollen Administrativen Zugriff auf den Server.

mehlvogel
06-06-2008, 15:38
Bzgl. der ersten Frage könnte dir mod_rewrite helfen sofern du einen Apache hast, in dem du alle Anfragen auf den Ordner auf das Skript mapst und die angefragte URL als Parameter mitgibst.

~Gh05t~
07-06-2008, 00:09
Das ist doch schon mal eine super Idee!
Leider bekomme ich es nicht ganz auf die Reihe:
Habe eine .htaccess mit folgendem Inhalt erstellt:


RewriteEngine on
RewriteRule ^(.*)$ test.php?query=$1 [L]

und ein PHP-Script test.php
<?PHP
echo "Query = ".$_GET['query'];
?>
Leider wird immer Query = test.php angezeigt.

Wenn ich noch irgend ein Zeichen einbaue (z.B. ^a(.*)$) gehts. Regex war noch nie mein Lieblingsthema, aber eigentlich sollte das doch gehen, oder?

msi
08-06-2008, 12:15
versuch mal bei google ne suche nach
link:alterurl
damit werden dir auch paar seiten aufgelistet.