3 Stimmen

IIS 6 dazu bringen, einen bestimmten HTTP-Statuscode programmatisch mit Classic ASP zurückzugeben

Ich habe gesucht und keine passende Antwort gefunden.

Ich habe eine benutzerdefinierte 404-Seite, die, wenn ausgelöst:

  1. analysiert die angeforderte URL nach einer bestimmten Zeichenfolge
  2. prüft eine Datenbank auf diesen Wert
  3. fügt bestimmte HTTP-Kopfzeile(n) auf der Grundlage der von db zurückgegebenen Ergebnisse ein

Je nach Bedingung werde ich dies an den Browser senden:

Response.AddHeader "Location", a_dynamic_url
Response.Status = "301 Moved"

Wenn die spezifische Zeichenfolge in meiner Datenbank gefunden wird, verhält sich der Client-Browser wie gewünscht, indem er die dynamische URL lädt, die ich in der Kopfzeile für den Speicherort festgelegt habe.

Hier ist mein Problem...

Wenn die spezifische Zeichenfolge in meiner Datenbank NICHT GEFUNDEN ist, kann ich den Status nicht auf "404 Not Found" setzen und benutzerdefiniertes HTML im Browser anzeigen.

Ich kann das eine oder das andere tun, aber nicht beides gleichzeitig. Es handelt sich entweder um den Status 404 oder um benutzerdefiniertes HTML (mit Status 200).

Wenn Sie dagegen HTTP Fox in Firefox verwenden, um die Anfrage-/Antwort-Header zu sehen, und dann zu einer unbekannten bit.ly-URL navigieren (z. B. "bit.ly/asdfasdf"), lautet der zurückgegebene Status 404 und der HTML-Code ist benutzerdefiniert.

Irgendwelche Ideen, wie ich IIS 6 manipulieren kann, um das Gleiche mit Classic ASP zu tun?

2voto

Eduardo Molteni Punkte 37808

Kennen Sie die "IE Friendly Errors" und die 512 Bytes Inhalt, die Ihr HTML haben muss, um sicherzustellen, dass Ihr HTML (anstelle der freundlichen Statusmeldung des IE) bei Ihren Benutzern angezeigt wird?

http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X