Schrift
[thread]12250[/thread]

Header Location

Leser: 1


<< >> 6 Einträge, 1 Seite
Toppe
 2008-07-25 13:39
#112690 #112690
User since
2008-07-25
3 Artikel
BenutzerIn
[default_avatar]
Hi zusammen,

ich habe nun schon seit einigen Tagen ein Problem.
Ich hab ein perl-Skript welches einen Redicrect auf eine andere Seite machen soll.
Die Besonderheit dabei ist das dieser Redirect einen bestimmt Status haben soll.
Perfekt wäre 301 aber ideal 404.

die lösung die ich derzeit verwende:

my $cgi = new CGI;
print $cgi->redirect($redirect_url);

jedoch liefert mir diese einen 302 Status.

wenn ich
print $cgi->header(-location->$redirect_url, -status->404);
bekomme ich nur eine weisse seite.

und
print $cgi->redirect(-uri->$redirect_url, -status->404);
das gleiche.

ich bin jetzt schon kurz davor auf eine php script umzuleiten aber ich denke das muss doch auch mit perl gehen, oder?

grüße und schonmal danke
pq
 2008-07-25 13:49
#112692 #112692
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
also ich würde mal sagen, das geht allein deshalb nicht, weil ein redirect immer den status
301 oder 302 hat:
http://en.wikipedia.org/wiki/List_of_HTTP_status_c...
404 ist 'not found'. du musst dich schon für das ein oder andere entscheiden.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Linuxer
 2008-07-25 13:51
#112694 #112694
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Hallo,

ich bin kein HTTP-Guru, aber mir sieht dieses Vorhaben nach einer üblen Verdrehung des HTTP-Protokolls aus.

Die 3XX Status Codes sind für Redirects vorgesehen, die 4XX für Client Errors.
Warum willst Du das verbiegen?

Was für einen Mehrwert soll es haben, einen Status 404 zu liefern und gleichzeitig umzuleiten?

Mögliche Lösung:
Definiere im Webserver eine eigene Seite (kann auch ein Skript sein, wenn ich mich nicht irre) für den Status 404 und leite aus dieser Seite heraus mit einem Meta-Tag anschliessend um.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
renee
 2008-07-25 13:57
#112696 #112696
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Toppe+2008-07-25 11:39:39--
[...]

wenn ich
print $cgi->header(-location->$redirect_url, -status->404);
bekomme ich nur eine weisse seite.

und
print $cgi->redirect(-uri->$redirect_url, -status->404);
das gleiche.

[...]


Wenn schon, dann musst Du die '->' durch '=>' ersetzen...

Verwendest Du kein Wiki:strict und warnings?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Toppe
 2008-07-25 13:58
#112697 #112697
User since
2008-07-25
3 Artikel
BenutzerIn
[default_avatar]
danke erstmal für die antworten.

ist etwas zu komplex mein vorhaben oder unsere serverstruktur hier zu erzählen :)

Nunja ich versuche es grob zu umfassen:

ein user gibt eine falsche url ein => apache => error.html
in dieser error.html wird auf ein perlskript weitergeleitet (serverseitig)
in diesem perl-skript befinde ich mich nun und möchte nun auf meine fehlerseite weiterleiten. und diese fehlerseite befindet sich auf einem tomcat(was jetzt kein problem darstellt)
jedoch will ich genau bei dieser weiterleitung keinen 302 sondern einen 301 haben.

das mit dem 404 kann ich denke ich mittlerweile ausschließen da dies wohl nur serverseitig gehen würde. da ich mich aber auf verschiedenen servern befinde geht das wohl nicht.

noch eine idee?
Toppe
 2008-07-25 14:03
#112698 #112698
User since
2008-07-25
3 Artikel
BenutzerIn
[default_avatar]
nun ich hab meinen fehler gefunden :)

ich mach es nun so
Code (perl): (dl )
print $cgi->redirect($redirect_url, -status => 301);


danke nochmals für eure bemühungen.
bis zum nächsten problem ;-)
<< >> 6 Einträge, 1 Seite



View all threads created 2008-07-25 13:39.