Forenindex » Archiv » Perl und CGI » header / adresszeile

header / adresszeile

r a c
Beiträge gesamt: 955

18. Feb 2004, 15:19
Bewertung:

gelesen: 1378

Beitrag als Lesezeichen
Hallo,

ich habe ein CGI das Daten aus einem Formular übernimmt, ein email sendet und dann eine Bestätigungsseite anzeigt.
Diese Seite hat dann die Adresse http://www.domain.ch/...n/irgendeinscript.pl , weil das Script im /cgi-bin/ liegt. Ich hätte lieber, wenn /cgi-bin/ nicht in der Adresse der ausgegebenen Seite vorkommen würde (also sowas wie: http://www.domain.ch/irgendwasanderes.html), aber das Script möchte ich dort lassen, wo es ist.
Ist das möglich?

Im Moment sieht das so aus:
print(PrintHeader);
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n\n";
print "<html>\n"; usw.

und ich suche was, wie:
print "Status: 302 Found\n";
print " ####andere Adresse, als die des Scripts
print "Content-type: text/html\r\n\r\n";

print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n\n";
print "<html>\n"; usw.

header / adresszeile

SabineP
Beiträge gesamt: 7586

18. Feb 2004, 17:36
Bewertung:

gelesen: 1378

Beitrag als Lesezeichen
Hallo rac,

zum Umschreiben von URLs wird eigentlich das Apache-Modul mod_rewrite verwendet.

Das Modul wird aufgerufen in der .htaccess mit der Zeile

RewriteEngine on

Anschließend wird die Rewrite-Regel eingetragen.

Ein Beispiel dazu gibts hier:
http://faq.1und1.de/...hnik/htaccess/4.html

----

Bei einer Weiterleitung mit dem Statuscode 302 muß die Zieladresse der Weiterleitung auch existieren.
Ansonnsten funktioniert das nicht.

Kannst Du CGI-Scripte auch außerhalb des Verzeichnisses cgi-bin ausführen?
Das wäre die einfachste Lösung.

Gruß Sabine

header / adresszeile

r a c
Beiträge gesamt: 955

18. Feb 2004, 20:31
Bewertung:

gelesen: 1378

Beitrag als Lesezeichen
Hallo Sabine,
ja, ich kann CGI-Scripte auch ausserhalb des Verzeichnisses cgi-bin ausführen.
Ich glaube jetzt auch, dass das die einfachste Lösung ist.


Ich hätte trotzdem gerne die Rewrite-Regel verstanden. Das Beispiel hat mir noch nicht geholfen. Wie muss es heissen um aus

/cgi-bin/allform.pl
/foo/ausgabe.html

zu machen?

header / adresszeile

SabineP
Beiträge gesamt: 7586

18. Feb 2004, 22:05
Bewertung:

gelesen: 1378

Beitrag als Lesezeichen
Hallo rac,

Du legst in das Verzeichnis /foo/ eine .htaccess mit dem Inhalt

RewriteEngine on
RewriteCond %{REQUEST_URI} (.*)ausgabe\.html$
RewriteRule (.*)ausgabe\.html$ /cgi-bin/allform.pl

und in das Verzeichnis /cgi-bin/ die Datei allform.pl

Wenn Dein Provider mod_rewrite unterstützt, dann erscheint bei Aufruf der URL

domain.ch/foo/ausgabe.html

die Ausgabe des Scripts allform.pl

Gruß Sabine

header / adresszeile

r a c
Beiträge gesamt: 955

19. Feb 2004, 01:00
Bewertung:

gelesen: 1378

Beitrag als Lesezeichen
erstmal Danke.

Grüsse r a c