Seite 1 von 2

Frage zum Error 404 Killer Mod

Verfasst: 21.11.2005 19:31
von johnny-legend
Ich würde gerne auf der error404.php einbinden dass der betrefende wie bei normalen 404 Pages sieht welche Datei nicht gefunden wurde. Das ist auch beim Debug hilfrei denn ich sehe sonst nicht welche Datei jetzt gerade fehlt.
The requested URL /blabla.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Verfasst: 23.11.2005 09:06
von Underhill
Hi,

Hosting bei 1&1?


Gruss
Underhill

Verfasst: 15.02.2006 03:01
von johnny-legend
Nein, nicht bei 1&1.

Verfasst: 18.02.2006 13:56
von johnny-legend
Bitte lasst jetzt nicht erst wieder 8 Wochen vergehen bevor jemand antwortet. :lol:

Verfasst: 18.02.2006 16:05
von Underhill
Hi,

ich denke die Ausgabe von

Code: Alles auswählen

$_SERVER['REQUEST_URI']
sollte es bringen...

Also bitte mal

Code: Alles auswählen

Diese Datei oder dieses Verzeichnis (<?php echo $_SERVER['REQUEST_URI']; ?>) existiert leider nicht mehr.
versuchen in der "error404.php" einzubauen..


Gruss
Underhill

Verfasst: 18.02.2006 18:28
von larsneo
hast du die error.php in der .htaccess relativ oder absolut angegeben?
...und liefert die fehler-seite auch den korrekten status-code zurück? die meisten scripte liefern fälschlicherweise ein "200 OK" was den sinn der seite natürlich ad absurdum führt...

Verfasst: 18.02.2006 18:54
von johnny-legend
Im Moment ist der Pfad absolut.

So sieht die php aus:

Code: Alles auswählen

<?php
/***************************************************************************
 *                                Errors.php
 *                            -------------------
 *   begin                : Wednesday, June 4, 2003
 *   email                : Joshua_Hesketh@hotmail.com
 *
 *   $Id: error404.php,v 0.0.1 2003/03/17
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   Some code in this file I borrowed from the original index.php, Welcome
 *   Avatar MOD and others...
 *
 ***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'config.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

if(isset($HTTP_GET_VARS['error']))
{
	$error = $HTTP_GET_VARS['error'];
}
else
{
	$error = '';
}

switch ($error) 
{ 
  case '401': 
  case '403': 
  case '404': 
  case '500': 
    $error_title = $lang['error_' . $error];
    $error_message = $lang['error_' . $error . '_message'];
    break;
  default: 
    $error_title = $lang['Unknown_error'];
    $error_message = $lang['Unknown_error_message'];
    break;
};


$page_title = $lang['error_' . $error];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$template->set_filenames(array(
	'body' => 'errors_body.tpl')
);

$template->assign_vars(array(
	'L_ERROR' => $error_title,
	'L_ERROR_MESSAGE' => $error_message,)
);

//
// Generate the page
//

$template->pparse('body');

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>

Verfasst: 18.02.2006 19:09
von larsneo
iirc geht beim absoluten pfad die info über den original request verloren - dafür funktioniert es aber auch in unterverzeichnissen.

das script setzt wie angesprochen keinen korrekten response header - damit erkennen beispielsweise suchmaschinen keine fehlenden seiten und spidern munter die error.php - bis sie dich im schlimmsten fall irgendwann wegen double content abwerten. aus der hüfte geschossen (und ungetestet) sollte es eigentlich am beispiel des 404ers wie folgt aussehen

Code: Alles auswählen

[...]
  case '404': 
    header('HTTP/1.0 404 Not Found');
[...]

Verfasst: 18.02.2006 20:13
von Underhill
Oh :oops: - reden wir nicht von der gleichen MOD?
http://www.phpbb.de/moddb/mod.php?id=364


Gruss
Underhill

Verfasst: 18.02.2006 20:15
von johnny-legend
Ne, inzwischen nicht mehr. :D

Ich habe einige 404 Hacks ausprobiert und bin bei dem jetzigen hängen geblieben.