header-xh-01 header-xh-02 header-xh-03 header-xh-04 header-xh-05 header-xh-06 header-xh-07 header-xh-08 header-xh-09 header-xh-10 header-xh-11 header-xh-12 header-xh-13 header-xh-14
Lembach's nichtkommerzielle Website rund um CMSimple_XH
Templates, Plugins, Tools, Programme
und Tips und Tricks die mir wichtig sind
Sie sind hier: Startseite > Plugins > SimplePlugins_XH Edition KRL > Function 404
Letzte Bearbeitung:

Function 404

Useage : nur durch das CMS, kein sonstiger Aufruf
Diese Funktion dient ausschließlich dazu, die Benutzeranfrage mit einer nicht existierenden URL auf die URL '/?404' umzuleiten.

Demzufolge muss es eine Seite 404 geben (wird in der Regel als versteckte Seite angelegt). Üblicherweise ist der Inhalt dieser Seite ein mehr oder weniger origineller Text, der die Tatsache kommentiert, dass eine nicht existierende Seite aufgerufen werden sollte. Außerdem ist meist eine Eingabemaske für eine Website-interne Suche und ein Link zur Start-Seite und evtl. ein Link zur Sitemap vorhanden.

Damit dies mit allen möglichen fehlerhaften URLs funktioniert ist auf jeden Fall eine Anpassung der .htaccess notwendig!
Unbedingt dazu diese Artikel lesen:
/?Tipps-und-Tricks-zusammengetragen/Fehlerseiten-des-CMS-statt-des-Servers
/?Tools-Werkzeuge/CMSimple_XH-Website-Tools/eigene-Fehlerseiten-mit-Vorlagen

Wie so eine Seite aussehen könnte / erstellt werden könnte, habe ich hier gezeigt.

 

Dateiname: ./plugins/simpleplugins_xh/simpleplugins_library/404/index.php

<?php

/*****************************************************
* Category : CMSimple_XH
* Typ : CMSimple Plugin
* Package : simpleplugins_xh Edition KRL
*****************************************************
* Function name : 404
* File name : index.php
* Version : 1.7.2
* Build : 20240206
* Autor : Karl Richard Lembach https://lembach-cmsimple.de
* Lizenz : CC-by-SA https://creativecommons.org/licenses/by-sa/4.0/deed.de
* Function : Umleitung zu benutzerdefinierter CMS-Antwort-Seite bei fehlerhafter URL innerhalb des CMS
* Redirection to user-defined CMS response page in case of incorrect URL within the CMS
******************************************************
* Useage : automatically by the CMS
* Example :
******************************************************/

/*
* Prevent direct access.
*/
if (!defined('CMSIMPLE_XH_VERSION')) {
header('HTTP/1.0 403 Forbidden');
exit;
}

/* Dieser Funktion kann als Parameter der Name einer Seite (URL ab incl. dem ?) übergeben werden.
* Ohne Parameter hat sie die gleiche Wirkung wie die Funktion gotohome.
* Sie kann verwendet werden um gezielt eine Seite anzuspringen!
* Sie funktioniert auch dann wenn in der Adresszeiele eine vor dem ? fehlerhafte URL steht.
*
* The name of a page (URL from incl. the ?) can be passed to this function as a parameter.
* Without parameters, it has the same effect as the gotohome function.
* It can be used to jump to a specific page!
* It also works if there is an incorrect URL before the ? in the address line.
*/

if (!function_exists('homeurl')) {

/* Der übergebene Parameter muss eine frei zugängliche existierende Seite auf der eigenen Damain sein.
* Ohne http://domain.tld/ aber mit dem ?.
*
* The parameter passed must be a freely accessible existing page on your own domain.
* Without http://domain.tld/ but with the ?
*/

function homeurl($seite = "")
{
$adresse = CMSIMPLE_URL;
if (!($seite == "")) {
$adresse .= $seite;
}
return $adresse;
}
}

/*
* 404 - Seite nicht gefunden - Eigene Fehlerseite
* Diese Funktion greift nur, wenn die URL vom CMS verarbeitet wird (also ein ? enthält).
* Das bedeutet, wenn die URL kein ? nach der Domainadresse enthält,
* wird das CMS nicht zur Auflösung der Adresse verwendet und der Server gibt seine 404-Fehlermeldung aus.
* Um dies zu verhindern muss eine .htaccess - Datei im root des Servers platziert werden.
* Ob diese Datei auch an anderer Stelle (z. B. Content-/2. Sprachen-Content- Ordner) plaziert werden kann habe ich nicht getestet.
* In dieser .htaccess - Datei muss ein Eintrag nach folgendem Schema existiert:

# eigene Fehlerseiten
# Custom 404 errors
ErrorDocument 404 /?404

* oder besser

# Custom 404 errors - Damit falsche URLs nicht vor /?404 stehen bleiben, den kopletten Link verwenden
ErrorDocument 404 https://domain.tld/?404

* In der Fehlerseite des CMS (z.B. https://domain.tld/?404) sollte eine 404-Statusmeldung an den Browser/Crowler/Bot ausgegeben werden.
* Dadurch wird dem Crowler mitgeteilt, das die URL, die zum 404er Code geführt hat, nicht existiert.
* Andernfall würde der Crowler die 404-Fehlerseite für den Inhalt der URL halten:

<div>#⁣cmsimple header('HTTP/1.0 404 Not Found');#</div>

* oder

<div>#⁣cmsimple header('HTTP/1.1 404 Not Found');#</div>

* Diesen Text an beliebiger Stelle des Contents der Seite einfügen.
*
* 404 - Page not found - Own error page
* This function only works if the URL is processed by the CMS (i.e. contains a ?).
* This means that if the URL does not contain a ? after the domain address,
* the CMS is not used to resolve the address and the server issues its 404 error message.
* To prevent this, a .htaccess file must be placed in the root of the server.
* I have not tested whether this file can also be placed elsewhere (e.g. content / language content folder).
* In this .htaccess file, an entry must exist according to the following scheme:

# eigene Fehlerseiten
# Custom 404 errors
ErrorDocument 404 /?404

* or better

# Custom 404 errors - So that incorrect URLs do not remain before /?404, use the complete link
ErrorDocument 404 https://domain.tld/?404

* In der Fehlerseite des CMS (z.B. https://domain.tld/?404) sollte eine 404-Statusmeldung an den Browser/Crowler/Bot ausgegeben werden.
* Dadurch wird dem Crowler mitgeteilt, das die URL, die zum 404er Code geführt hat, nicht existiert.
* Andernfall würde der Crowler die 404-Fehlerseite für den Inhalt der URL halten:

<div>#⁣cmsimple header('HTTP/1.0 404 Not Found');#</div>

* or

<div>#⁣cmsimple header('HTTP/1.1 404 Not Found');#</div>

* Insert this text anywhere in the content of the page.
*/

if (!function_exists('custom_404')) {

function custom_404()
{
$headertext = "Location: " . homeurl("?404");
header($headertext);
exit;
}
}

/*
* HOMELINK - Erzeugt einen String, der den HTML-Code eines Links enthält
* Diese Funktion gibt den kompletten HTML-Code eines Links in die aufrufende Seite aus.
* Dabei wird die URL komplett mit Domain.tld/ ausgegeben.
*
* HOMELINK - Generates a string containing the HTML code of a link
* This function outputs the complete HTML code of a link in the calling page.
* The URL is output in full with Domain.tld/.
*/

if (!function_exists('homelink')) {

/* Der erste übergebene Parameter muss der Name aus dem Menü sein, der zu der als zweiten Parameter übergebenen Seite passt.
* Der zweite übergebene Parameter muss eine frei zugängliche existierende Seite sein. Ohne http://domain.tld/ aber mit dem ?.
* Der dritte Parameter kann der Inhalt des title-Attributes sein.
*
* The first parameter passed must be the name from the menu that matches the page passed as the second parameter.
* The second parameter passed must be a freely accessible existing page. Without http://domain.tld/ but with the ?
* The third parameter can be the content of the title attribute.
*/

function homelink($linkname = "Start", $seite = "", $titelstring = "")
{
$adresse = CMSIMPLE_URL;
if (!($seite == "")) {
$adresse .= $seite;
}
$linktosite = '<a href="' . $adresse . '" title="' . $titelstring . '">' . $linkname . '</a>';
return $linktosite;
}
}

/* Diese Funktion hat keine Parameter und ruft unmittelbar die oberste Seite des CMS auf (Start-/Home-Seite oder,
* wenn vorhanden, die versteckte Landing-Page).
*
* This function has no parameters and immediately calls up the top page of the CMS (start/home page or,
* if available, the hidden landing page).
*/

if (!function_exists('gotohome')) {

function gotohome()
{
$headertext = "Location: " . CMSIMPLE_URL;
header($headertext);
exit;
}
}

?>

| Seitenanfang |