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

mod_rewrite: error 404 - fehlerhafte URL mit übergeben

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Thies
PostRank 3
PostRank 3
Beiträge: 98
Registriert: 16.03.2006, 15:16
Wohnort: Stadtilm

Beitrag von Thies » 15.01.2008, 22:16

Hallo,

ich weiss nicht, ob das überhaupt möglich ist, meine Suche hat bisher leider keinen Treffer gebracht. Daher hoffe ich, dass mir hier jemand helfen kann:

Wenn man in der .htaccess per ErrorDocument 404 .... fehlerhafte Aufrufe umleitet, kann ich in PHP nicht über $_SERVER den ursprünglichen = fehlerhaften Link abfragen. Ich möchte aber die fehlerhaften Links an mein CMS übergeben, damit dieses in einer DB abfragt, ob hierzu ein neuer, korrekter Link vorliegt. Hintergrund sind anstehende Umstellungen von über 1.000 statischen HTML-Sites in ein PHP-CMS und ich will nicht jedes alte HTML-File per meta-tag auf den neuen Link umleiten.

Also dachte ich mit

ErrorDocument 404 https://localhost/phpfts/error404.php?u ... T_FILENAME}

den fehlerhaften Link übergeben zu können. Aber das klappt nicht, denn nun habe ich in den Variablen %{REQUEST_URI} bzw. %{REQUEST_FILENAME} als Text stehen :(

Kann mir jemand weiterhelfen, ob ich meine Idee überhaupt umsetzen kann oder ob das gar nicht geht?

Danke im Voraus

Frank-Andre

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

marguardth
PostRank 3
PostRank 3
Beiträge: 96
Registriert: 27.10.2007, 12:27
Wohnort: Tübingen

Beitrag von marguardth » 16.01.2008, 01:07

hallo,

wenn du die alten seiten auf die neuen seiten umleiten willst, solltest du zuerst schon mal nicht mit 404 arbeiten, sondern mit 301 - Moved permanently.

das kannst du auf zwei verschiedenen art und weisen erreichen ... vielleicht auch mehr, aber die fallen mir um 1 uhr nachts nicht mehr ein.

1. je nachdem, wie die neuen von den alten urls abweichen per mod_rewrite also mit RewriteCond und RewriteRule in der ,htaccess oder

2. per php, indem du bei einer falschen anfrage die neue korrekte url per hand aus der db holst, und dann per header("HTTP/1.0 301 Moved Permanently"); und header("Location: https://www.example.com/"); umleitest.

wie das genau funktioniert und wie du es auf deine seite anwendest, wirst du herausfinden, wenn du mit den oben genannten begriffen die suchmaschinen deiner wahl bemühst. jenachdem, welchen cms du benutzt kann es auch eine extension geben, mit der du diese aufgabe realisieren kannst.

Thies
PostRank 3
PostRank 3
Beiträge: 98
Registriert: 16.03.2006, 15:16
Wohnort: Stadtilm

Beitrag von Thies » 16.01.2008, 08:55

Moin,

für mein Grundproblem habe ich inwzischen eine Lösung erhalten, der 404er Aufruf war "falsch" (manchmal sieht man den Wald vor lauter Bäumen nicht :D ):

Code: Alles auswählen

ErrorDocument 404 /phpfts/error404.php
Dann steht in der „$_SERVER['REQUEST_URI']“-Variable die URL doch zur Verfügung.
marguardth hat geschrieben:wenn du die alten seiten auf die neuen seiten umleiten willst, solltest du zuerst schon mal nicht mit 404 arbeiten, sondern mit 301 - Moved permanently.
Klar, würde ich auch gern, aber ich sehe derzeit keine sinnvolle Möglichkeit zur Realisierung (siehe unten)
marguardth hat geschrieben:das kannst du auf zwei verschiedenen art und weisen erreichen ... vielleicht auch mehr, aber die fallen mir um 1 uhr nachts nicht mehr ein.
Manchmal habe ich da meine besten Ideen ... und morgens wieder vergessen :)
marguardth hat geschrieben:1. je nachdem, wie die neuen von den alten urls abweichen per mod_rewrite also mit RewriteCond und RewriteRule in der .htaccess oder
Die neuen URL weichen komplett von den alten ab, da die bisherigen frei Schnauze festgelegt wurden und die neuen systematischer sind. Daher müsste ich jeden Link einzeln eintragen und das würde die .htaccess sprengen :(
marguardth hat geschrieben:2. per php, indem du bei einer falschen anfrage die neue korrekte url per hand aus der db holst, und dann per header("HTTP/1.0 301 Moved Permanently"); und header("Location: https://www.example.com/"); umleitest.
Das geht leider aus heutiger Sicht auch nicht, denn es liegen weiterhin html und shtml-Dateien auf dem Server, so dass ich keine allgemeine RULE anlegen kann, die alles andere auf irgendeine php umleitet, die dann prüft. Also muss ich diese Umleitung leider so realisieren oder wirklich jede html-Datei die umgestellt wurde per header umleiten.

Oder hat jemand eine andere Idee?
marguardth hat geschrieben:wie das genau funktioniert und wie du es auf deine seite anwendest, wirst du herausfinden, wenn du mit den oben genannten begriffen die suchmaschinen deiner wahl bemühst. jenachdem, welchen cms du benutzt kann es auch eine extension geben, mit der du diese aufgabe realisieren kannst.
Ist ein eigen entwickeltes CMS, daher muss ich mich um alles selber kümmern.

Danke für die Hinweise, vielleicht fällt mir ja doch noch was "besseres" ein.

CU

Frank-Andre