it-swarm.com.de

404 HTTP-Codes in Joomla

wie bringt man Joomla dazu, einen "echten" 404-Code zurückzugeben? Ich kann nicht herausfinden, wie das passieren kann! Ich habe mich verändert htaccess.txt bis .htaccess, aktivierte das System/Redirect-Plugin und aktivierte das Umschreiben von URLs in den globalen Joomla-Optionen.

Allerdings wird jede gefälschte URL, die ich eingebe, einfach auf die Homepage weitergeleitet, nicht einmal auf die Standard-Joomla-Fehlerseite.

Dies geschieht auch auf der Joomla-Demoseite hier: https://demo.joomla.org/badurl_fake

Weiter testen:

Joomla Global Use Rewrite: OFF
Joomla htaccess.txt renamed: NO
Joomla redirect plugin enabled: NO

Dies führt dazu, dass eine ungültige URL einen echten 404-Fehler zurückgibt

Joomla Global Use Rewrite: ON
Joomla htaccess.txt renamed: NO
Joomla redirect plugin enabled: NO

Dies führt dazu, dass eine ungültige URL einen echten 404-Fehler zurückgibt

Joomla Global Use Rewrite: ON
Joomla htaccess.txt renamed: NO
Joomla redirect plugin enabled: YES

Dies führt dazu, dass eine ungültige URL einen echten 404-Fehler zurückgibt

Joomla Global Use Rewrite: ON
Joomla htaccess.txt renamed: YES
Joomla redirect plugin enabled: YES

Dies führt zu einer falschen URL, über die der Benutzer zur Startseite zurückkehrt

Joomla Global Use Rewrite: OFF
Joomla htaccess.txt renamed: YES
Joomla redirect plugin enabled: YES

Dies führt zu einer fehlerhaften URL, über die der Benutzer zur Startseite zurückkehrt

Joomla Global Use Rewrite: OFF
Joomla htaccess.txt renamed: YES
Joomla redirect plugin enabled: NO

Dies führt zu einer fehlerhaften URL, über die der Benutzer zur Startseite zurückkehrt

So scheint es mir, dass der htaccess der Schuldige hier ist. In meinen Tests wird der 404 immer dann auf die Indexseite umgeleitet, wenn die .htacess vorhanden ist.

7
user101289

Dies ist kein Fehler, sondern erwartetes Verhalten. Wenn Sie in der Benutzeroberfläche von Joomla Administrator zu Components> Redirect navigieren, wird eine Liste aller URL-Anforderungen angezeigt, die zu einem 404 führen. Joomla zeichnet sie automatisch in dieser Komponente auf und leitet die Anforderung an die Homepage weiter.

Der Grund dafür ist zweifach: Erstens soll eine negative Benutzererfahrung verhindert werden, indem Fehlerseiten gemindert werden, und zweitens soll ein Mittel für einen Website-Administrator bereitgestellt werden, um gewünschte Endpunkte zu verfolgen und manuell umzuleiten. Ich habe einen Link zu Joomla-Dokumenten angehängt, in dem die Details näher erläutert werden.

http://docs.joomla.org/Help33:Components_Redirect_Manager

2
Brian Bolli

Sie können den 404-Fehler anpassen (z. B. eine benutzerdefinierte Seite anzeigen oder an eine andere Stelle als die Startseite senden), indem Sie Ihrer Vorlage eine PHP= Datei hinzufügen, error.php Benennen und in einfügen die Wurzel der Vorlage (neben dem index.php der Vorlage).

In dieser Datei können Sie angeben, was zu tun ist, z. B. an eine beliebige Stelle auf Ihrer Website senden (aktualisieren Sie /SOMEWHEREINYOURSITE Mit der gewünschten URL):

<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

//example of a way to output the error code:
//echo $this->error->getCode();

if (($this->error->getCode()) == '404') {
    header('Location: /SOMEWHEREINYOURSITE');
}
?>

Methode 2:

Wenn Sie wissen, dass Sie die .htaccess-Datei verwenden (von der ich annehme, dass Sie einen Apache-Server verwenden), können Sie eine Definition für die Behandlung des 404-Fehlers hinzufügen.

Fügen Sie dies oben in die .htaccess-Datei ein:

ErrorDocument 404 /SOMEWHEREINYOURSITE

Aktualisieren Sie wie bei der vorherigen Methode /SOMEWHEREINYOURSITE Mit der gewünschten URL.

2
jackJoe

Ich habe dies kürzlich auf einigen Websites gesehen und festgestellt, dass es passiert, wenn sich die Website im Offlinemodus befindet und Sie am Frontend angemeldet sind.

Wenn die Site online ist und Sie eine URL erstellen, wird die Standardfehlerseite mit dem Statuscode angezeigt.

Wenn die Site offline ist und Sie angemeldet sind, werden Sie mit einem 303 see other status code zu /index.php weitergeleitet.

1
Robert Went