Umleitung auf Error 404 - Seite nicht gefunden

  • Hallo zusammen,


    ich bin auf der Suche nch der Möglichkeit Tippfehler abzufangen und auf eine Seite umzuleiten.


    In Joomla habe in meinem Templateordner die Datei "error.php" die das ja steuert, funktioniert alles wunderbar.


    Ich habe aber einen Ordner in dem nur .pdf-Dateien liegen, kein Joomla-Inhalt.


    Wie schaffe ich es, wenn in diesem Ordner ein Tippfehler entsteht (=in die Adressleite eine .pdf-Datei eingegeben, die es nicht gibt), nicht auf die error.php des Templates geleitet wird sondern auf eine beliebige andere Seite?


    Ich habe mal ganz stumpf im dem Ordner eine .htaccess mit folgendem Inhalt hinterlegt:


    Hat leider dies nicht geklappt, ich wurde nicht auf "meinefehlerseite.php" weitergeleitet, sondern auf die Error-404-Seite meines Joomla-Templates.


    Hat jemand eine Idee, wie ich das lösen kann?


    Über Tipps freue ich mich.



    Vielen Dank und viele Grüße


    winterman

  • In der Joomlaeigenen .htaccess-Datei habe ich folgende Zeile eingefügt:


    Code
    RewriteCond %{REQUEST_URI} !^/(namedesverzeichnisseswodiepdfsliegen)(/.*)?


    Leider hat das nicht geklappt, und ich lande wieder bei meiner Template-404-Seite...


    Hat sonst noch jemand eine Idee? Oder sollte ch mal meinen (Joomla-Spezialsierten) Hoster fragen?


    Vielen Dank und viele Grüße


    winterman

  • @Re:Later: Danke für deine Antwort!


    Aaalso es geht um folgendes: Für eine Laufveranstaltung sollen die Urkunden möglichst schnell nach dem Lauf zum Download angeboten werden.


    Die Laufsoftware spuckt die Urkunden als einzelne pdf's aus. Der Dateiname entspricht der Startnummer. (1-3-stellig)


    Da die PC-Bediener vor Ort keine Joomla-Fachleute sind, müssen sie einfach alle Urkunden per WinSCP in den Ordner "urkundendownload/2017" hochladen und fertig - schnell und simpel. Der Ordner hat aber mit Joomla selber nichts zu tun, da liegen nur die pdf's - sonst nichts.


    Gelöst habe ich das wie folgt:


    Auf der entsprechende Seite auf der Homepage habe ich (mit dieser Erweiterung) folgenden php-Code eigegeben:


    Damit erscheint ein Input-Feld wo der Läufer seine Startnummer einträgt und er wird zu seiner Urkunde, die im Ordner "urkundendownload/2017" liegt, weitergeleitet.


    Wenn jetzt ein Läufer ein falsche Startnummer eingibt, soll er auf eine Seite mit dem Text "Sie haben eine Startnummer eingegeben, die nicht vergaben war", darunter dann wieder das Feld mit dem Code von oben, weitergeleitet werden.


    Das mag Erbsenzählerei sein, aber die Läufer sollen halt nicht auf der Standard-404-Seite landen, um dann nicht zu wissen wie es weiter geht.


    Viele Grüße


    winterman

  • Ich meinte so was in der Art. In der error.php deines Templates fügst so was ein:



    Viel Mühe habe ich mir nicht gegeben und gleich nach öffnendem BODY eingesetzt.


    Darfst halt nicht vergessen, 2017 etc. auch hier anzupassen.


    Natürlich kannst auch das window.open direkt verwenden ohne die Form, um sofort auf die Eingabeseite zurückzugehen, wenn die Bedingungen erfüllt sind.



    EDIT: Ich glaub location.href ist dann besser geeignet.


    Oder einen META-Redirect, wenn Bedingungen erfüll sind oder per Joomla-API redirecten zurück zum Eingabeformular...

  • @Re:Later: Vielen Dank für deine Hilfe!


    Leider funktioniert weder das eine noch das andere.


    Ich könnte mir vorstellen, das es evtl. an der error.php meines Templates liegt, die sieht so aus:


    • Hilfreich

    Das ist die Original-error.php deines Templates unter Joomla 3?


    Also noch mal verkürzt/vereinfacht. Direkt hinter dem <html>-Tag fügst du ein



    Dann kontrollierst du
    $pdfVerzeichnis
    und gibst den Ordner ein, in dem die PDFs liegen. Also exakt der Ordner so wie er in deiner Eingabe-<form> lautet.


    Dann kontrollierst du
    $umleitenNach
    und gibst die Zielseite ein, die aufgerufen werden soll, wenn ein Aufruf
    http://www.xy-lauf.de/urkundendownload/2017/12345.pdf
    kein PDF gefunden hat.
    Im Normalfall also die Seite auf der man die Laufnummer eingibt.


    Bevor umgeleitet wird, bekommt der Nutzer einen Hinweis.

  • @Re:Later: Vielen Dank, das funktioniert einwandfrei!


    Ein interessantes Phänomen habe ich noch beobachtet: Wenn ich auf der "Suchseite" z.B. die Urkundennummer 123 eingebe, werde ich ja auf die Adresse http://www.xy-lauf.de/urkundendownload/2017/123.pdf weitergeleitet. Jetzt passiert folgendes: Wenn es einen Beitrag mit der ID "123" gibt, wird mir dieser Beitrag unter der Adresse http://www.xy-lauf.de/urkundendownload/2017/123.pdf angezeigt. Gibt es keinen Beitrag mit der ID 123 werde ich durch die von dir ergänzte error.php meines Templates wieder auf die Suchseite weitergeleitet. Gibt es in dem Ordner "urkundendownload/2017/" eine Datei namens "123.pdf" wird diese angezeigt.


    Das Verhalten hat aber nichts mit deinen Ergänzungen meiner error.php zu tun.

  • Das ist leider Joomla. Ob und wann sich dieses Verhalten ändern wird, keine Ahnung.


    Ab Joomla 3.7.0 wird es die Möglichkeit geben, einen "modernen Router" zu aktivieren, sowie Artikel-IDs aus URLs zu entfernen. Aber soweit ich sehe, ändert das nichts an deinem Problem.


    Abhilfe auf die Schnelle wüsst ich jetzt nur statt 123.pdf zukünftig z.B. s123.pdf zu verwenden. Darf halt nicht mit einer Zahl beginnen, die mit einer Kategorie- oder Artikel-ID verwechselt werden kann. Das "s" kannst ja im Code für das Eingabeformular noch hinzufügen, damit Nutzer trotzdem nur die Zahl eingeben müssen. Aber musst die PDFs umbenennen.