Eigene 404 Seite - Code wird nicht korrekt zurückgegeben

  • Hallo Leute, ich hab eine eigene 404 Seite erstellt und diese mittels


    Code
    ErrorDocument 404 /404.html


    in der .htaccess eingetragen. Trotzdem wird der falsche Code (i.d.R. 302) ausgegeben, wenn eine nicht existierende URL aufgerufen wird.


    Kann das abhängig sein, wo in der .htaccess es eingetragen wird? Ich hatte es zuerst direkt nach ## No directory listings und dann ganz zum Schluss - beide Mal ohne Auswirkungen. Trage ich willkürlich einen Fehler in der .htaccess ein, reagiert Joomla entsprechend, d.h. die .htaccess funktioniert grundlegend ...

  • Dier Error-Page über einen Eintrag in die .htaccess zu realisieren, habe ich auch schon oft erfolglos getestet. Weiß bis heute nicht, woran es letztendlich scheiterte. Deswegen realisiere ich diese auch grundsätzlich über die bereits genannten Möglichkeiten.

  • Danke, das bringt mich schon mal weiter.


    In der error.php meines Templates lautet der Inhalt:

    PHP
    <?phpdefined('_JEXEC') or die;$app = JFactory::getApplication();$doc = JFactory::getDocument();$params = $app->getTemplate(true)->params;$error_url = $params->get( 'error_url' , '/index.php/404' );if (($this->error->getCode()) == '404') {header('Location: ' . $error_url . '');exit;};?>


    Ändere ich ihn mit Hilfe eurer Links zu:


    PHP
    <?phpdefined('_JEXEC') or die;$app = JFactory::getApplication();$doc = JFactory::getDocument();$params = $app->getTemplate(true)->params;$error_url = $params->get( 'error_url' , '/index.php/404' );if (($this->error->getCode()) == '404') {header("HTTP/1.0 404 Not Found");exit;};?>


    ab, dann bekomme ich bei einem 404 Fehler, bzw. wenn ich eine falsche URL aufrufe, auch einen 404 Code zurück, aber leider ohne meine oder irgendeine 404 Feherlseite - die Seite ist dann einfach nur weiss.


    Sobald ich eine zweiter Header Zeile für die 404 HTML Seite einfüge, bekomme ich aber wieder einen 302 zurück:


    PHP
    <?phpdefined('_JEXEC') or die;$app = JFactory::getApplication();$doc = JFactory::getDocument();$params = $app->getTemplate(true)->params;$error_url="/404.html";if (($this->error->getCode()) == '404') {header("HTTP/1.0 404 Not Found");header("Location: ".$error_url);exit;};?>


    Mit Time4Mambos abgeändertem Quelltext funktioniert es leider auch nicht:


    Was mache ich falsch?? fie

  • "domain" musst natürlich mit deiner URL ersetzen. Hast das gemacht?
    Und du musst den Beitrag Namens "404" auch angelegt haben.



    Axel

  • Du machst jedenfalls falsch dass da eine if - elseif Verzweigung da ist, die überflüssig ist.
    Es passiert ja in jedem Zweig exakt dasselbe also braucht es auch keine Verzweigung.
    Ferner ist es sinnlos, JRoute auf eine komplette url anzuwenden.


    Das Tutorial von Tom sieht doch recht vernünftig aus. Verwende das doch.


    Oder mach eine ganz eigene error-page, das ist meine Methode.

  • Du machst jedenfalls falsch dass da eine if - elseif Verzweigung da ist, die überflüssig ist.
    Es passiert ja in jedem Zweig exakt dasselbe also braucht es auch keine Verzweigung.
    Ferner ist es sinnlos, eine JRoute auf eine komplette url anzuwenden.


    Das Tutorial von Tom sieht doch recht vernünftig aus. Verwende das doch.


    Oder mach eine ganz eigene error-page, das ist meine Methode.


    Dann macht Time4Mambo was falsch - das glaube ich nicht ;)
    Das Tut von Tom geht ja auch nicht
    Und eine Joomla unabhängige ErrorPage will ich nicht


    Hab aber schon eine Lösung, werde diese morgen als Quellcode posten, vielleich hilfts ja jemanden nach mir

  • Das war die Lösung:



    Link

  • Du machst jedenfalls falsch dass da eine if - elseif Verzweigung da ist, die überflüssig ist.
    Es passiert ja in jedem Zweig exakt dasselbe also braucht es auch keine Verzweigung.
    Ferner ist es sinnlos, JRoute auf eine komplette url anzuwenden.


    So ganz ist das nicht mein Code, den er da abdruckt. Meine elseif-Verzweigung sieht im Original etwas anders aus.
    Das mit dem JRoute allerdings- da hast recht.



    Axel

  • Hallo,


    ich habe diesen älteren Thread gefunden und wollte mal fragen, ob ich das wie folgt machen kann:



    Ich bin nach dieser Anleitung vorgegangen: https://www.templatemonster.co…-add-custom-404-page.html


    Habe also, einen Beitrag, der nicht kategorisiert ist, angelegt und auch einen Menüpunkt im Schattenmenü erstellt.

    Habe mir dann die IDs gemerkt und in den angegebene Code kopiert.


    Das ganze habe ich ausprobiert, es funktioniert auch:


    https://mcv-moemlingen.de/inde…rticle&id=356&itemid=1129


    Dann habe ich die error.php aus dem Verzeichnis templates/sytem/ in mein Templateverzeichnis templates/lessallrounder/ kopiert.



    Jetzt wollte ich den in der Anleitung beschriebenen Code

    Code
    if (($this->error->getCode()) == '404') {
    header('Location: ' . JRoute::_("index.php?option=com_content&view=article&id=356&Itemid=1129", false));
    exit;
    }

    in die error.php kopieren.


    Allerdings sieht bei mir diese error.php wie folgt aus:


    Wo genau muss ich denn den Code-Schnipsel hinkopieren und muss ich dafür etwas Anderes aus dieser error.php löschen?


    Danke für Eure Hilfe


    LG

    Kurt

  • Wo genau muss ich denn den Code-Schnipsel hinkopieren und muss ich dafür etwas Anderes aus dieser error.php löschen?

    Ja, statt allem Anderen.
    Meine error.php sieht so aus:


  • Danke Euch!


    Axel

    Deine Anleitung ist sehr professionell aber für mich als Laien nicht so einfach zu verstehen. Z.B. weiß ich gar nicht was das für Apple-Icons sind, da ich die png-Dateien nicht kenne.


    Tom

    Das wollte ich wissen.

    Ich überschreibe also die komplette Datei und gut ist es.



    LG

    Kurt

  • Axel

    Deine Anleitung ist sehr professionell aber für mich als Laien nicht so einfach zu verstehen. Z.B. weiß ich gar nicht was das für Apple-Icons sind, da ich die png-Dateien nicht kenne.

    Ich schreibe Tutorials niucht für Profis. Die benötigen sowas in aller Regel nicht unbedingt ;)

    Aber danke für den Hinweis mit den Apple-Icons! In der Tat könnte ich da auch mal ein paar Wörter drüber schreiben. Da hast du unbedingt Recht!


    Die Apple-Icons sind quasi die Favicons bei den Handys. Du kannst oftmals einen Favoriten in deinem mobilen Browser anlegen. Und diese "Favoriten-Icons" kannst halt mit eigenen Grafiken versehen oder vorhandene benutzen. Benutzt du eigene Grafiken kannst beispielsweise dein Logo einarbeiten. Mittels Suchmaschine findest du detaillierte Angaben dazu.


    Und wenn du sie nicht hast (so wie ich beispielsweise), dann passiert einfach nichts. Es wird einfach ignoriert oder du kannst den Teil auch löschen ;)



    Axel