Fehlerseiten werden über .HTACCESS bereitgestellt. Wenn Sie Apache verwenden, würden Sie die ErrorDocument
Direktive verwenden und den Status und die URL hinzufügen.
So würde es in Ihrer .htaccess-Datei aussehen:
ErrorDocument 401 http://yourwebsite.com/error-401
ErrorDocument 403 http://yourwebsite.com/error-403
ErrorDocument 500 http://yourwebsite.com/error-500
Sie können die folgende Funktion verwenden. Dadurch wird dynamisch hinzugefügt, was für Sie in der HTACCESS-Datei benötigt wird, oder Sie können dies manuell tun.
1. Seiten hinzufügen:
Sie müssten dann in Ihr Dashboard gehen und die Seiten wie jede normale Seite erstellen ('Dashboard'> 'Seiten'> 'Neu'). Sie können mit beliebigen Titeln versehen werden. Vergewissern Sie sich jedoch, dass der Slug mit der unten angegebenen Funktion übereinstimmt (Slug: Fehler-401, Fehler-403, Fehler-404, Fehler-500). Sie können auch eine Seitenvorlage verwenden, um das gewünschte Layout und den gewünschten Stil für diese speziellen Seiten zu erstellen. Folgen Sie dazu den Anweisungen von WordPress Codex .
2. Funktion hinzufügen:
// Create Custom Error Pages in WordPress using HTACCESS
function royal_custom_error_pages() {
// Get HTACCESS path & dynamic website url
$htaccess_file = '.htaccess';
$website_url = get_bloginfo('url').'/';
// Check & prevent writing error pages more than once
$check_file = file_get_contents($htaccess_file);
$this_string = '# BEGIN WordPress Error Pages';
if( strpos( $check_file, $this_string ) === false) {
// Setup Error page locations dynamically
$error_pages .= PHP_EOL. PHP_EOL . '# BEGIN WordPress Error Pages'. PHP_EOL. PHP_EOL;
$error_pages .= 'ErrorDocument 401 '.$website_url.'error-401'.PHP_EOL;
$error_pages .= 'ErrorDocument 403 '.$website_url.'error-403'.PHP_EOL;
$error_pages .= 'ErrorDocument 404 '.$website_url.'error-404'.PHP_EOL;
$error_pages .= 'ErrorDocument 500 '.$website_url.'error-500'.PHP_EOL;
$error_pages .= PHP_EOL. '# END WordPress Error Pages'. PHP_EOL;
// Write the error page locations to HTACCESS
$htaccess = fopen( $htaccess_file, 'a+');
fwrite( $htaccess, $error_pages );
fclose($htaccess);
}
}
add_action('init','royal_custom_error_pages'); // This will run the function everytime, not ideal!
// register_activation_hook( __FILE__, 'royal_custom_error_pages' ); // Using a plugin, runs only once!
NB !! HINWEISE ZUR OBEN GENANNTEN FUNKTION
Wenn Sie Ihre Website verschieben oder die URL-Struktur ändern
Bei der obigen Funktion ist zu beachten, dass vor dem Schreiben in Ihre HTACCESS-Datei überprüft wird, ob die ErrorDocument-Direktiven bereits vorhanden sind. Die ErrorDocument-Direktiven werden jedoch nicht neu geschrieben, wenn Sie Ihr Blog ändern oder verschieben, um die aktualisierten Seitenpositionen widerzuspiegeln. Sie müssten zuerst die vorhandenen ErrorDocument-Anweisungen in Ihrer HTACCESS-Datei löschen und diese Funktion dann erneut ausführen, um die neuen Anweisungen zu erstellen.
Korrigieren Sie den Haken, um die Funktion NUR EINMAL auszulösen
Die andere Sache, die zu beachten ist, ist diese Funktion, die die init
Aktion jedes Mal ausführt, wenn Ihre Seiten geladen werden, was überflüssig und verschwenderisch ist. Daher würde ich vorschlagen, sie einem Plugin hinzuzufügen und die Funktion register_activation_hook
eher zu verwenden, damit sie nur einmal bei der Aktivierung des Plugins ausgelöst wird
Dateiberechtigungen
Es ist auch unbedingt erforderlich, dass Ihre .htaccess-Datei beschreibbar ist, wenn Sie die oben genannte Funktion verwenden. Vergewissern Sie sich daher, dass sie über die richtigen Dateiberechtigungen verfügt, z. B. CHMOD777.