Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10671[/thread]

index.pl umleiten?

Leser: 1


<< >> 10 Einträge, 1 Seite
Lightman
 2007-10-26 17:02
#101410 #101410
User since
2007-01-31
57 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich möchte eine index.pl als DirectoryIndex hinzufügen, so dass beim Aufruf von /cgi-bin automatisch nach /cgi-bin/test/index.pl gewechselt wird (oder auch von www.meine-url.de nach www.meine-url.de/cgi-bin/index.pl). Ich habe jetzt eine .htaccess in /cgi-bin mit
Code: (dl )
DirectoryIndex /test/index.pl

erstellt, bekomme aber immer nur ein 403 Forbidden. Die error.log des Apache sagt, dass "Directory index forbidden by rule" sei.

In der httpd.conf habe ich aber +Indexes festgelegt:
Code: (dl )
1
2
3
4
<Directory /Users/*/Sites/cgi-bin>
AllowOverride All
Options +Indexes Includes +ExecCGI
</Directory>


Was mache ich falsch?
GwenDragon
 2007-10-26 17:20
#101412 #101412
User since
2005-01-17
14607 Artikel
Admin1
[Homepage]
user image
Code: (dl )
DirectoryIndex /test/index.pl
ist nicht richtig.

Was du aber willst ist:
Code: (dl )
RedirectPermanent /cgi-bin/ /cgi-bin/test/index.pl
Lightman
 2007-10-26 17:33
#101414 #101414
User since
2007-01-31
57 Artikel
BenutzerIn
[default_avatar]
Hmm, also wenn ich es lokal versuche, passiert gar nichts (Redirect wird ignoriert), auf dem Server im Netz kommt ein 500 Internal Server Error. Es ist wahrscheinlich das einfachste, es per HTML-Meter-Umleitung zu machen. *grml*
GwenDragon
 2007-10-26 17:36
#101415 #101415
User since
2005-01-17
14607 Artikel
Admin1
[Homepage]
user image
So ganz genazu verstehe ich dioch gerade nicht.
Nochmals: Was willst du genau?
www.example.com/cgi-bin/ => www.example.com/cgi-bin/test/index.pl ? Oder was genau?
Welche URLs willst du umleiten?

Möglich, das dies hilft:

Code: (dl )
1
2
3
4
5
<Directory /Users/*/Sites/cgi-bin>
DirectoryIndex index.pl
AllowOverride All
Options +Indexes Includes +ExecCGI
</Directory>
Lightman
 2007-10-26 17:51
#101419 #101419
User since
2007-01-31
57 Artikel
BenutzerIn
[default_avatar]
Das Problem ist, dass ich nur einen SharedHoster habe, d.h. ich kann die Apache-Config nicht direkt ändern.
Mir ging es darum, beim Aufruf von www.meine-url.de nach www.meine-url.de/cgi-bin/index.pl umzuleiten und das möglichst über .htaccess. Das ganze lief jetzt sowohl lokal als auch im Web nur zum Test, auf den späteren Server habe ich noch keinen Zugriff und weiß daher auch nicht, wie die Config des Apache aussieht (und ob überhaupt ein Apache läuft :-/). Daher leite ich jetzt von /index.htm nach /cgi-bin/index.pl um. Danke trotzdem. :-)
GwenDragon
 2007-10-26 17:59
#101420 #101420
User since
2005-01-17
14607 Artikel
Admin1
[Homepage]
user image
Mit mod_rewrite, also mit RewriteRule kannst du auch "umleiten", wenn es in der .htacces erlaubt ist.
Code: (dl )
1
2
3
RewriteBase /
RewriteRule "^index.html?" /cgi-bin/index.pl [L]
RewriteRule "^$" /cgi-bin/index.pl [L]

Damit gibt also die index.pl das HTML für index.htm aus; was aber unsichtbar bleibt. Du kannst also die Existenz des index.pl verstecken, da ja kein Redirect im Browser sondern nur im Server selbst stattfindet

Was soll den die /cgi-bin/index.pl machen?
kristian
 2007-10-26 20:03
#101425 #101425
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo
GwenDragon+2007-10-26 15:59:55--
Code: (dl )
1
2
3
RewriteBase /
RewriteRule "^index.html?" /cgi-bin/index.pl [L]
RewriteRule "^$" /cgi-bin/index.pl [L]


Die Anführungszeichen " haben dort nichts verloren.
Punkte haben in diesen regex die gleiche Bedeutung wie wir sie in Perl kennen, wollen also maskiert werden.
Das macht unterm Strich in einer sinnvollen Anwendung:
Code: (dl )
1
2
3
4
5
6
7
<IfModule mod_rewrite.c>
Options +FollowSymLinks # nicht immer gut
RewriteEngine on
RewriteBase /
RewriteRule ^index\.html /cgi-bin/index.pl [L]
RewriteRule ^(.*)$ /cgi-bin/index.pl?q=$1 [L]
</IfModule>

Die Zeile Options +... braucht man, wenn FollowSymLinks in der httpd.conf nicht eingeschaltet wurde, will man aber nicht haben, wenn es aktiviert ist und ein override verboten ist. Im Normalfalle (97 von 100) geht es ohne, bei 5 von 100 geht es mit nicht mehr.

Gruss
Kristian
kristian
 2007-10-26 20:23
#101426 #101426
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo
Lightman+2007-10-26 15:02:43--
Hallo,
ich möchte eine index.pl als DirectoryIndex hinzufügen, so dass beim Aufruf von /cgi-bin automatisch nach /cgi-bin/test/index.pl gewechselt wird (oder auch von www.meine-url.de nach www.meine-url.de/cgi-bin/index.pl). Ich habe jetzt eine .htaccess in /cgi-bin mit
Code: (dl )
DirectoryIndex /test/index.pl

Erstmal ist ein.htaccess im cgi-bin eine ganz schlechte Idee.
Die in der Grundeinstellung des Apache vorgesehenen Einstellungen lassen das im Normalfalle nicht zu.
Du solltest auch nie zwei URL's haben, die auf den gleichen Content zeigen. Das kommt aus der SEO-Ecke, nennt sich dort "dublicated content" und ist gaaaanz schlecht wenn es bei Google mal was werden soll.

Dein "DirectoryIndex /cgi-bin/script.pl" hätte im DOCUMENT_ROOT des Servers funktionieren müssen, allerdings musst du dann die Einstellungen fürs DOCUMENT_ROOT machen nicht fürs cgi-bin.
Bei: "Options +Indexes Includes +ExecCGI" fehlt so wie es mir scheint ein + für die Includes.

Gruss
Kristian
GwenDragon
 2007-10-26 21:00
#101427 #101427
User since
2005-01-17
14607 Artikel
Admin1
[Homepage]
user image
Die " sind nicht undebdingt verboten; aber den Punkt habe ich vergessen zu maskieren (Schnelltipperin). Sorry.

Und ebensogut hätte eine auch schreiben können:
Code: (dl )
   RewriteRule ^(.*)$           /cgi-bin/index.pl/$1 [L,PT]

Möglicherweise braucht es aber auch bei anderen Sachen noch [L,PT,QSA]

Kommt darauf an, was das Skript machen soll und wie es programmiert wird.

Irgendwie umleiten geht schon, je nachdem was noch gebraucht wird an Parametern. Kann funktionieren.
Lightman
 2007-10-28 20:14
#101506 #101506
User since
2007-01-31
57 Artikel
BenutzerIn
[default_avatar]
Das Script ist zur Verwaltung einer Webseite. Daher soll man beim Aufruf der Seite auch gleich auf das Script umgeleitet werden (Ersatz der index.htm). Sobald ich Zugriff auf den Webspace habe, werde ich eure Antworten mal ausprobieren. Danke erst einmal.
<< >> 10 Einträge, 1 Seite



View all threads created 2007-10-26 17:02.