Seite 1 von 2

korrekter 404

Verfasst: 09.03.2006, 11:35
von kaisen
Hallo,

Benötige ma kurz Hilfe bzgl eines korrekten 404s. Wir haben einige uralte html-Seiten im index die komischerweise teils höher plaziert sind als die neuen php-links, obwohl die alen seiten nicht mehr existieren.

Bisher hatte ich falsche aufrufe per htaccess (errordocument 404 https://www.domain.tld.de/error404.html) auf eine statische html-seite wietergeleitet.

Nun möchte ich, dass die Seite im context der eigentlichen seite angezeigt wird. also per index.php?go=404error includet wird.

habe jetzt den aufruf folgendermaßen:
errordocument 404 https://www.domain.tld.de/index.php?go=404error)

und in der index noch vor irgendeiner ausgabe, ein kleines php-script das bei go=404error zusätzlich zur includeten datei folgendes sendet:

Code: Alles auswählen

{ header("HTTP/1.0 404 Not Found"); }
ist das so optimal gewählt?

Edit:
Ich weiß das die seiten so vermutlich im index bleiben werden, aber ersten bringen die so auch noch ein paar besucher mehr und außerdem wenn ich einen 410 gone senden würde, dann wären besucher die einen flaschen link eingeben, die ausversehen auf einen toten link stoßen sicherlich irritiert, denk ich.

Verfasst:
von

korrekter 404

Verfasst: 09.03.2006, 12:04
von marc75
errordocument 404 https://www.domain.tld.de/index.php?go=404error)
wenn du hier eine url mit angibst, sendet der apache einen 301 statt dem angegebenen 404, musste mal checken.
errordocument 404 /index.php?go=404error)

korrekter 404

Verfasst: 09.03.2006, 12:08
von kaisen
problem ist dann aber, wenn (was eigentlich nicht sein sollte) die fehlersiete in www.domain.de/unterordner/ auftritt, dann kommts zu fehlern, da die seite ja nicht modrewrite-optimiert ist und "normale pfade" angegeben sind wie src="logo.gif" und nicht src="/logo.gif"

Verfasst:
von

korrekter 404

Verfasst: 09.03.2006, 12:22
von marc75
du kannst ja mal mit https://www.wannabrowser.de/ dein header testen

korrekter 404

Verfasst: 09.03.2006, 12:43
von kaisen
gut gut der sagt immer 404 header
sollte also in orndung sein, oder?

https://www. beerijuana .de/nichda.html

danke und grüße,
Kai

korrekter 404

Verfasst: 09.03.2006, 13:05
von marc75
wenns 404 liefert isses ok

korrekter 404

Verfasst: 09.03.2006, 15:03
von kaisen
und gleich noch ne frage...

ich hab urls:
www.domain.de/bla.php?go=blabla
irgendwie ist nun die url
www.domain.de/bla.php in den Index gerutscht. die hat da aber nix drin zu suchen, weil dort per default blabla includet wird -> folglich doppel-content.

hab nun überlegt in die bla.php ganz oben folgendes hereinzuschreiben:

Code: Alles auswählen

if(empty($go))
{ 	
	header("HTTP/1.0 403 Forbidden");
	echo "<html><head><title>403 - Verboten</title>
	</head><body><h1>403 - Verboten</h1>
	......
	</body></html>";
	exit; 
&#125;
Ist das richtig so?

korrekter 404

Verfasst: 09.03.2006, 15:32
von thetrasher
Die Entfernung einer Seite aus dem Index klappt mit 410 (= Gone). Ein 404 wird von Google gleichwertig eingestuft, obwohl ein 404 auch ein temporärer Zustand sein kann. Ein 403 versteht keine Suma.

korrekter 404

Verfasst: 09.03.2006, 15:40
von kaisen
wenn www.domain.de/bla.php dann aus dem index fliegt,
fliegt dann www.domain.de/bla.php?go=AAA, www.domain.de/bla.php?go=BBB , ...
etc. eventuell auch mit raus?

Verfasst: 09.03.2006, 21:17
von kaisen
weiß keiner?

so....

Verfasst: 10.04.2006, 09:28
von kaisen
Nochwas...

Ist es möglich nur Webseitenaufrufe also (php, html, etc) mit 404 auf eine fehlerseite zu leiten und z.b. .gif/.jpg aufrufe etc. mit dem standard-fehler zu senden?

Danke!

Re: korrekter 404

Verfasst: 10.04.2006, 14:29
von haha
kaisen hat geschrieben:wenn www.domain.de/bla.php dann aus dem index fliegt,
fliegt dann www.domain.de/bla.php?go=AAA, www.domain.de/bla.php?go=BBB , ...
etc. eventuell auch mit raus?
Es wäre logisch. Alles, was hinter dem Fragezeichen steht, sind Parameter für das Objekt, dessen Bezeichnung vor dem Fragezeichen steht. Wenn das Objekt nicht mehr da ist, kann die URL mit den Parameter auch nicht mehr funktionieren.

Deine Frage hat etwas von "Was passiert mit den Löchern, wenn der Käse weg ist?"...
kaisen hat geschrieben:Ist es möglich nur Webseitenaufrufe also (php, html, etc) mit 404 auf eine fehlerseite zu leiten und z.b. .gif/.jpg aufrufe etc. mit dem standard-fehler zu senden?
Jein. Du musst in der Fehlermeldung bzw. dem Skript, das die Fehlermeldung ausgibt, anhand der Variablen REDIRECT_URL rausfinden, welche URL den Fehler verursacht hat.

Verfasst: 10.04.2006, 15:00
von ole1210
Lösch die Datei doch einfach. dann bekommst du nen ganz sicher richtigen 404er.

Aber nen permanent redirect sollte doch eigentlich sibbvoller sein, oder?

Verfasst: 18.05.2006, 16:47
von blinks
hallo,

ich habe auch ein problem mit nem 404er...

meine index.php schaut am anfang wie folgt aus:

Code: Alles auswählen

<?php

   require_once&#40;"scripts/global_functions.inc.php"&#41;;

   // Zeitmessung starten
   $stime=mtime&#40;&#41;;

   require_once&#40;"config.inc.php"&#41;;
   require_once&#40;"classes/core.class.php"&#41;;
   require_once&#40;"classes/module.class.php"&#41;;
   
   $db =& DB&#58;&#58;connect&#40;$dsn, $dsn_options&#41;;
   if &#40;PEAR&#58;&#58;isError&#40;$db&#41;&#41; die&#40;$db->getMessage&#40;&#41;&#41;;
   
   $core = new core&#40;$db&#41;;
   
   if &#40;$_GET&#91;'include'&#93;=="details" || $_GET&#91;'seite'&#93;>1&#41;
      $core->check_site_validity&#40;&#41;;
   
   session_start&#40;&#41;;
   if &#40;!$_SESSION&#91;'browser'&#93;&#41; $_SESSION&#91;'browser'&#93;=browser_type&#40;&#41;;
unschwer zu erkennen ist, dass VOR $core->check_site_validity(); keine header gesendet werden. die session wird erst DANACH gestartet. $core->check_site_validity(); ruft je nach parametern $this->header_404() auf (in der klasse core):

Code: Alles auswählen

      function header_404&#40;&#41; &#123;
         header&#40;"HTTP/1.1 404 Not Found"&#41;;
         header&#40;"Status&#58; 404 Not Found"&#41;;
         header&#40;"Location&#58; /404.html", 404&#41;;
         header&#40;"Connection&#58; close"&#41;;
         exit&#40;&#41;;
      &#125;
es soll gecheckt werden, ob eine seite mit den übergebenen parametern gültig ist oder nicht. wenn nicht, soll ein 404 gesendet werden und auf meine 404 errordoc geleitet werden. teste ich das ganze nun mit wannabrowser.de bekomme ich folgendes resultat:

Code: Alles auswählen

HTTP/1.1 302 Found
Date&#58; Thu, 18 May 2006 15&#58;28&#58;48 GMT
Server&#58; Apache/2.0.54 &#40;Debian GNU/Linux&#41; PHP/5.1.4-1.dotdeb.1 mod_ssl/2.0.54 OpenSSL/0.9.7e
X-Powered-By&#58; PHP/5.1.4-1.dotdeb.1
Location&#58; /404.html
Connection&#58; close
Transfer-Encoding&#58; chunked
Content-Type&#58; text/html
also ein 302... warum? ich habe ausdrücklich einen 404 gesendet... der rest aus header_404() geht ja auch wie man sieht (Location: /404.html).

kann mir jemand erklären, was hier los ist?

Verfasst: 18.05.2006, 17:04
von haha
blinks hat geschrieben:

Code: Alles auswählen

         header&#40;"HTTP/1.1 404 Not Found"&#41;;
         header&#40;"Status&#58; 404 Not Found"&#41;;
         header&#40;"Location&#58; /404.html", 404&#41;;
         header&#40;"Connection&#58; close"&#41;;
es soll gecheckt werden, ob eine seite mit den übergebenen parametern gültig ist oder nicht. wenn nicht, soll ein 404 gesendet werden und auf meine 404 errordoc geleitet werden. teste ich das ganze nun mit wannabrowser.de bekomme ich folgendes resultat:

Code: Alles auswählen

HTTP/1.1 302 Found
Location&#58; /404.html
also ein 302... warum?
Du weißt es doch schon (ich habe das mal für Dich hervorgehoben). Wer eine Weiterleitung haben will, bekommt auch eine. 404 ist keine Weiterleitung, sondern eine Fehlermeldung, und vor lauter Verzweiflung entscheidet der Server sich dafür, lieber die von die gewünschte Weiterleitung zu schicken. Bitte Anleitung lesen.

Davon mal abgesehen gehört hinter Location eine absolute URL, an Connection solltest Du nicht rumfummeln und zweimal 404 anweisen ist unnötig, einmal reicht.