Thread Mason und mod_perl: Wieso !$r->main aber !$r->is_initial_req ??
(2 answers)
Opened by flowdy at 2012-10-05 17:40
Hallo,
meine Konfiguration: Apache/Linux 2.2.2, mod_perl 2.0.7 und HTML::Mason 1.45 In der Doku zu Apache2::RequestRec steht Quote und daraus hab ich mir den Schluss erlaubt, dass $r->main belegt ist, wenn $r->is_initial_req false liefert. Gilt das nicht für das ErrorDocument? Folgender Code funktioniert jedenfalls nicht, das spricht gegen meine Logik. Weiß vielleicht jemand Rat? Code: (dl
)
1 %# in /error404.html, verknüpft durch ErrorDocument-Direktive Ausgabe: Code: (dl
)
Komisch, is_initial_req ist doch 0<li><!-- Weitere Links zur Wiederfindung --></li> Zum Kontext: Ich möchte in meinem Mason-regierten ErrorDocument (404) die vom Benutzer ursprünglich aufgerufene URL ermitteln. Ich brauche sie, um erst nach Klick auf einen Weiterleiten-Button durch den Nutzer in der Datenbank nachzuschauen, ob es eine Redirect-URL gibt und ggf. auf diese entsprechend weiter zu leiten. Bisher habe ichs mit $m->redirect($url, 301) gemacht. Leider zögert das das Problem toter Bookmarks und entsprechender Anfragen nur hinaus: Ich kenne keinen Browser am Markt, der dem Nutzer bei einem "HTTP 301 Moved Permanently" diskret den Bookmark aktualisiert oder auch nur darum nachfragt. Warum auch immer. Jedenfalls sehe ich durch diese Situationen keinen rechten Sinn des Status-Codes 301, wahrscheinlich haben nur Suchmaschinen etwas davon. Daher hab ich mir diese gelinde Lästigkeit überlegt, die der Nutzer eben umgeht, indem er von sich aus manuell den Bookmark aktualisiert, so er einen angelegt hat. Eine statische Vorschaltseite mit Link kommt nicht infrage, da die Redirects in der Datenbank verwaltet und regelmäßig tatsächlich gelöscht werden. viele Grüße, flowdy modedit Editiert von GwenDragon: Code-Tag gesetzt, More enfernt Last edited: 2012-10-05 17:44:15 +0200 (CEST) package MyClass; sub new {\b\b\b\b\b\b\b\b\buse Moose;
|