Gezieltes setzen des HTTP-Status

  • Hallo,


    gibt es eine Möglichkeit den HTTP-Status direkt zu beeinflussen?


    Hintergrund:
    Wir haben eine Website, die alle Adressen per Regel empfängt und entsprechende Ergebnisse per DB liefert. Für Seiten die nicht existieren wird eine entsprechende Fehermeldung ausgegeben, die bisher natürlich mit dem HTTP-Status 200 übertragen wird.
    Um dem Standard im Web besser gerecht zu werden würden wir gerne die Seiten mit dem HTTP-Status 404 ausliefern, damit Suchmaschinen sofort erkennen können, dass es sich um eine entsprechende Fehlermeldung handelt.


    Vielen Dank für Eure Hilfe


    Gruß Thorsten

  • Also im Normalfall liefert Domino doch den Status 404 aus wenn eine Seite nicht gefunden wird.


    Ich glaube du musst dazu noch etwas mehr erläutern wie das umgesetzt ist, daß es zu dem von dir beschriebenen Verhalten kommt.


    Setzen kannst du ihn meines Wissens nach nur in XPages direkt

  • Hallo taurec,


    wir haben ein CMS auf Domino-Basis, dass per Regel alle Seiten annimmt und in Abhängigkeit der Adresse dann eine Webpage ausliefert.
    Da per Regel alle Adressen angenommen werden liefert der Server kein 404 da alle Adressen quasi existieren.
    Wir geben für Adressen, für die keine Webpage existiert eine Fehlerseite aus, die natürlich hübsch aussieht aber eben ein "HTTP/1.1 200 OK" und nicht ein "HTTP/1.1 404 NOT FOUND".


    Gruß Thorsten

  • Also je nachdem wie das umgesetzt ist geht auch das:


    Wenn ihr eine Maske $$ReturnGeneralError in der Anwendung habt dann könnt ihr damit die Ausgabeseite anpassen und es wird weiterhin der 4040 zurückgeliefert, hängt aber wie gesagt davon ab wie genau die Anwendung angesteuert wird, also wenn z.B. http://www.test.de/content1.html auf http://domino1.test.de/cms.nsf/out/content1.html umgeleitet wird, dann kann das mit so einer Maske abgefangen werden


    Wie aber die Umleitung aussieht müsstest du noch mal genauer erläutern

  • Hallo,


    ich kenne alle Möglichkeiten eine Fehlerseite zu definieren. Da das aber alles für unsere Zwecke nichts ist wollte ich nur den Code setzen.
    Der HTML-Code wird bei direkt über ein Agenten erzeugt.


    Gruß Thorsten

  • Kann es sein, dass das Prinzip nicht so ganz verstanden wurde?
    Eine user-defined Page auszuliefern kann per definitionem keinen 404 zurück liefern, eben da etwas ausgeliefert wird. Wenn dein Briefträger dir sagt, dass er heute nichts für dich dabei hat und völlig zusammenhanglos irgendetwas anderes einwirft, was er gerade für richtig und passend hält, wärst du bestimmt nur begrenzt begeistert.


    Ich empfehle dringend, sich mit den Konzepten der HTTP-Statuscodes sinnentnehmend auseinander zu setzen und die eigene Infrastruktur darauf zu trimmen, als irgendetwas Krudes zusammen zu basteln, was so überhaupt rein gar nichts mit den RFCs zu tun hat. Wenn euer Webserver etwas ausliefern soll, kann und darf kein 404 zurück kommen. Und wenn es einen 404 geben soll, konfiguriert euer System halt so, dass es nicht alles annimmt. Oder alternativ richtet entsprechende Redirects/Rewrites ein, wenn möglichst viele Optionen behandelt werden sollen


    Wer meint, dennoch seinen eigenen Kopf durchsetzen und jahrzehntelange gelebte und erprobte Praxis verbasteln zu müssen, der darf gern einen eigenen RFC einreichen, der das Szenario behandelt. Dann wird sich zeigen, was der Rest der Welt davon hält. :thumbdown: Der einzige, der an jedweden allgemeingültigen Standards vorbei eigenen Ramsch als Maß der Dinge definieren darf, ist Mickischrott und sogar die haben schon einsehen müssen, was sie davon haben: den Hohn und den Spott haben sie sich jedes Mal aufs Neue redlich verdient (muss man auch erstmal können).

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hallo,


    das Prinzip ist klar und darum möchten wir ja auch entsprechend dem Standard den Code 404 senden und nicht nur einfach eine Fehlerseite, die mit 200 geschickt wird.
    Unser CMS nimmt alle Adressen entgegen und je nach Inhalt werden Agenten ausgeführt und Seiten dynamisch aufgebaut ausgeliefert.
    Es gibt nur eine einzige Maske die den aufgebauten Inhalt ausliefert.
    Man kann nicht auf die Datenbank direkt über die üblichen Wege zugreifen, da alles nach der TLD direkt an den Agenten übergeben wird.
    Wenn der/die Agent/en nun feststellen, dass die übergebene Adresse keinen Sinn macht soll eben eine entsprechende Fehlerseite mit dem Code 404 ausgegeben werden.


    Wir haben z.B. Seiten, die Positionen von Fahrzeugen nach der Kommunikation mit dem Fahrzeug zurück liefern.
    Wird nun eine URL für ein Fahrzeug geöffnet, dass nicht existiert soll nicht nur schlicht eine Fehlermeldung ausgegeben werden, sondern direkt der Code 404 gesendet werden, da die URL so nicht existiert.
    Der Mensch kann die Fehlermeldung lesen und weiß was Sache ist. Die Suchmaschinen-Bots sollen aber auch wissen, dass unter der verwendeten URL nichts zu holen ist.


    Gruß Thorsten