echten 404-Browserfehler per http-Header...

Support für weitere IT-Themenbereiche
Antworten
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

echten 404-Browserfehler per http-Header...

Beitrag von Dungeonwatcher »

Moin! :cool:

phpBB bringt ja einen eigenen Text wenn z.B. ein Topic nicht mehr existiert. Nun wühlt sich Google seit Wochen durch mein Forum, was ja auch sehr löblich ist, nur leider hat Google teilweise eine wirre Vorstellung von den zu besuchenden Links und ruft z.B. viewtopic.php?t99 statt viewtopic.php?t=99 auf. Ich würde in so einem Fall gerne einen echten 404-Browserfehler per http-Header zurückgeben lassen.
Andererseits wäre ein weiterleiten auf die index.php auch nicht verkeht.

Nur wie stelle ich das an? Es gibt keine .htaccess und auch der Server selber kann/soll dies nicht tun.

Bye/2
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öh, nur per .htaccess ist das möglich.
Etwas anderen hinge nur vom Webserver ab.
PHP kann da nicht helfen, denn der Interpreter würde sich ja erst einschalten, wenn eine PHP-Seite aufgerufen wird. Und das dann ohne Fehler...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
dagobert
Beiträge: 457
Registriert: Mo 08.Mär, 2004 13:46
Wohnort: Altenkirchen
Kontaktdaten:

Beitrag von dagobert »

die datei ist doch vorhanden und wird geladen. es wird nur nicht das topic gefunden.
anstelle des message_die müsste man einen redirect zum index einfügen können...

vielleicht könnte man einfach einen redirect auf wtgtrgwerf.php machen. dann haste nen echten 404 ;)



oder hab ich nen denkfehler ?
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Hmmm, das leuchtet mir noch nicht ein. phpBB generiert doch selbständig eine Seite mit dem Text: "Das gewählte Thema oder der Beitrag existiert nicht." bzw. "Das ausgewählte Forum existiert nicht.". Da muss es doch möglich sein zusätzlich den Header anzupassen? Google wertet dies dann entsprechend aus:
Google hat geschrieben:Wir akzeptieren Ihre Anforderung zum Entfernen nur, wenn die Seite in einem echten 404-Browserfehler über die http-Header zurückgibt. Stellen Sie sicher, dass Sie einen echten 404-Browserfehler zurückgeben, auch wenn Sie einen benutzerfreundlicheren Abschnitt "body" der HTML-Seite für Ihre Besucher anzeigen. Eine Seite, die "Datei nicht gefunden" zurückgibt, wenn die http-Header nach wie vor den Statuscode 200 oder einen normalen Code zurückgeben, ist in diesem Fall nicht hilfreich.
Ich habe mittlerweile auch einen Tip gefunden, nur leider funktioniert der hier nicht:

öffne includes/functions.php

suche:

Code: Alles auswählen

	switch($msg_code)
	{
		case GENERAL_MESSAGE:
			if ( $msg_title == '' )
			{
danach einfügen:

Code: Alles auswählen

				if ( !$userdata['session_logged_in'] )
				{
  					header("HTTP/1.0 404 Not Found");
  					}
Bei mir gibt es nur diese Fehlermeldung:
PHP Warning: Cannot modify header information - headers already sent by (output started at ...\includes\template.php(127) : eval()'d code:1) in ...\includes\functions.php on line 1079
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dann dürfte auch page_header.php nicht eingebunden werden!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Das überzeugt mich immer noch nicht. Es ist sicherlich ziemlich kompliziert, aber das sollte machbar sein. ;)
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Also nochmal zum Anfang des Problems:
Wenn eine Seite aufgerufen wird, die nicht vorhanden ist, wie soll dann PHP das feststellen, wenn es noch nicht einmal benutzt wurde?

Hä???

Richtig: Geht nicht!

Also nur per Webserver, der eben die Datei ja sucht und dann (im Falle Apache) per .htaccess eine dort angegebene Error-Page aufruft.
Denn dort wird eine nicht extierende Datei bemerkt, nicht in PHP!

Ebenso gibt es einen HTML Error MOD, der aber auch den Webserver bzw. die .htaccess nutzt.
Also zwar mit PHP die Error-Seite erstellt, aber diese nicht per PHP auslöst!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Soweit kann ich folgen und war mir das auch klar. Dann stelle ich die Frage mal anders:

Wenn phpBB eine Seite mit dem Text: "Das gewählte Thema oder der Beitrag existiert nicht." bzw. "Das ausgewählte Forum existiert nicht." ausgibt, wie bekomme ich dann das gewünschte in den Header? ^d
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nicht so ohne weiteres, denn:

Diese Meldung wird ja durch die viewforum.php/viewtopic.php angestossen und in der functions.php erstellt.
Jetzt ist die Frage, ob die page_header.php dann schon eingebunden ist (müsste ich jetzt auch erstmal nachsehen), um VORHER, also direkt mit Feststellung des Fehlers der Header ausgeblendet ($gen_simple_header = TRUE;) oder per "Schalter" mit einen anderen Inhalt erzeugt, bzw. eine andere "page_header.php" eingebunden werden kann.

Ich denke, so in etwa wäre das machbar, wenngleich ich auch aus zeitlichen Gründen erstmal ausscheide, sowas umzusetzen (ja, ich weiß, ich wiederhole mich).
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

[quote="oxpus - Fr 17.März, 2006 14:27";p="56162"]Diese Meldung wird ja durch die viewforum.php/viewtopic.php angestossen und in der functions.php erstellt.[/quote]

Da setzte der von mir gepostete Code auch an, jou.
Jetzt ist die Frage, ob die page_header.php dann schon eingebunden ist (müsste ich jetzt auch erstmal nachsehen),
Ich denke ja. Zumindest deutet die o.g. Fehlermeldung darauf hin.
um VORHER, also direkt mit Feststellung des Fehlers der Header ausgeblendet ($gen_simple_header = TRUE;) oder per "Schalter" mit einen anderen Inhalt erzeugt, bzw. eine andere "page_header.php" eingebunden werden kann.
Jupp, genauso stellte ich mir das vor.
Ich denke, so in etwa wäre das machbar, wenngleich ich auch aus zeitlichen Gründen erstmal ausscheide, sowas umzusetzen (ja, ich weiß, ich wiederhole mich).
Null Problemo. Vieleicht traut sich ja ein anderer Profi diese Idee umzusetzen. :cool:
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Ich hoff das man mal hier mit reinschreiben kann, es gibt ja reichliche MODs wie z.B: HTML Error MOD usw. wo man mit eine eigene 404 Errorseite machen kann.
Standartmässig steht ja sowas

Code: Alles auswählen

Not Found
The requested URL /blabla.php was not found on this server.
Ist es möglich irgendwie bei eine eigene Error Seite mit einzubauen das er auch die datei name mit ausgibt z.B: - Auf dem Server wurde keine Datei mit dem Name /blabla.php gefunden. - sowie er beim Standard es tut?
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dem passenden MOD hatte ich schon gepostet ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Ja der HTML Error MOD das ist klar, aber da kann ich nur mit machen, "Seite nicht gefunden, etc."

Aber wie kann ich die datei wie im Standard mit über geben das da auch /blabla.php steht es muss ja irgendwie geprüft werden welche Datei versucht aufzurufen und dann in der fehlermeldung ausgegeben werden.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja der HTML Error MOD das ist klar, aber da kann ich nur mit machen, "Seite nicht gefunden, etc."
Eben nicht!

Die Error-Seite kann jede(s) Seite oder Script sein, die der Webserver darstellen kann. Also auch ein PHP-Script!
Es ist nicht auf reine HTML-Seiten beschränkt!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Ja nur wie mach ich die prüfung und übergaben dann das er blabla.php mit ausgibt in der fehlermeldung wenn ich www.meinedomain.de/blablab.php aufrufe?
Hab leider keine ahnung
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Das steht in $HTTP_SERVER_VARS['REQUEST_URI'];
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

Aha oki, dann mal schaun das ich es hinbekomme muss ja wenn ich die datei für 404 jetzt beispiel 404.php nenne kann ich ja mit dem blanko page mod oder wie der hieß womit man eine eigene seite machen kann wo der board-header/footer mit angezeigt wird irgendwie dann es mit message_die() ausgeben lassen oder so, mal schauen wie ich es hinbekomme, ansonste kriegt man ja hier gute hilfe :)

EDIT: Hab mal grob gemacht, aber es funktioniert, hab blabla.php aufgerufen stande wurde blabla.php ausgegeben hab blabla2.php aufgerufen stande blabla2.php - dann kann ich auch an den feinschlief nun ran gehn danke für den denkanstoß :)
Zuletzt geändert von Christian_N am Fr 17.Mär, 2006 21:33, insgesamt 1-mal geändert.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Hi! :cool:

Eine supermäßig gute Nachricht, diese Aufgabe ist gelöst worden und funktioniert hier bestens.

Bye/2
Antworten