On 07.10.2007, at 15:51, Olaf Lautenschlaeger wrote:
On Saturday, October 06, 2007 10:30 PM [GMT+1=CET],
Martin Ebert <[EMAIL PROTECTED]> wrote:
# In einem Unterverzeichnis (und seinen Unterverzeichnissen)
<Directory "/path/to/my/folder">
# soll nun folgendes gelten: Wenn dort _keine_ index.html
# gefunden wird,
DirectoryIndex MyScript index.html
MyScript sollte hier an das Ende ansonsten wird nie zuvor nach
index.html gesucht und *immer* gleich MyScript verwendet...
# dann soll das Script /usr/local/bin/xxx.pl aufgerufen werden
AliasMatch ^/path/to/my/folder/(.*/)?MyScript$ \
"/usr/local/bin/xxx.pl $1"
</Directory>
Das AliasMatch muss erstens aus dem Directory-Container heraus, es
ist hier nicht erlaubt. Zweitens macht /path/to/my/folder/ hier
keinen Sinn da der Regex von AliasMatch die URL und nicht den
Filesystem-Pfad untersucht, also eher sowas wie "^(.*/)MyScript$".
Gleichzeitig muss auch /usr/local/bin/xxx.pl für den Server
erreichbar und als CGI-Skript ausführbar sein, was bei /usr/local/bin/
* nicht unbedingt der Fall sein sollte; also wird auch noch folgendes
nötig sein:
<Directory /usr/local/bin>
Order allow,deny
Allow from all
Options +ExecCGI
SetHandler cgi-script [oder AddHandler cgi-script .pl...]
</Directory>
(Aber bitte nicht wirklich /usr/local/bin verwenden; schlauer wäre
ein dediziertes Verzeichnis für CGI-Skripte, wie /usr/local/apache/
cgi-bin/ o.Ä.)
Im Endeffekt kann man sich auch gleich die Options- & SetHandler-/
AddHandler-Direktiven sparen indem man direkt ScriptAliasMatch
anstatt des AliasMatch verwendet :)
# (Arbeitsverzeichnis muss aber das via URL adressierte Verzeichnis
sein!)
Der Klammerausdruck "matcht" alle evtl. noch folgenden Dirs in der
URL,
welche in "$1" umgefüllt und übergeben werden - xxx.pl kann dann
dorthin
'chdir' machen.
Oder man holt sich den ursprünglichen URL-Pfad einfach aus der
entsprechenden Environment-Variablen REQUEST_URI, also in Perl $ENV
{'REQUEST_URI'} - macht man dies und hat z.B. schon ein /cgi-bin/-
Verzeichnis dann kann man sich das ganze ScriptAliasMatch-Getue
getrost sparen und als einzigste Änderung bleibt:
DirectoryIndex index.html /cgi-bin/index.pl
Das wäre wohl das wirklich einfachste ;-)
Auf keinen Fall vergessen, solche an den Script übergebenen Parameter
auf Sinnhaftigkeit gegenzuchecken! Böhse Buben schleusen sonst Sachen
wie "../../" ein.
Oder andere nette Dinge :)
Cheers,
Erik
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an [EMAIL PROTECTED]
sonstige Anfragen an [EMAIL PROTECTED]
--------------------------------------------------------------------------