.htaccess in Zusammenarbeit mit mod_rewrite
MichaelB
- webserver
Hallo,
ich habe ein kleines Problem. Ich möchte folgendes erreichen.
Ich habe ein CGI-Skript "index.cgi", welches als URL-Parameter die eigentliche Datei bekommt.
Nehmen wir mal an mein Webspace liegt unter
/home/wwwroot/
Diese CGI-Datei liegt auch darunter. Weitere HTML-Dateien liegen in Unterverzeichnissen
z.B.
/home/wwwroot/weiteres/meineseite.html
Aufgerufen wird das alles über
http://meincoolerserver/index.cgi?url=/weiteres/meineseite.html
(warum ich das so machen möchte hat den Hintergrund, dass ich die HTML-Dateien vor Auslieferung an den Browser modifizieren möchte).
Als Webserver verwende ich den Apache 1.3 unter Linux.
Meine Frage ist nun. Ich möchte gerne trotz der obigen Konstruktion den Authentifizierungsmechanismus von Apache per .htaccess Datei nutzen (um nicht eine eigene Userverwaltung aufziehen zu müssen).
D.h. wenn unter /home/wwwroot/weiteres/ eine .htaccess-Datei ablege und ich die
http://meincoolerserver/index.cgi?url=/weiteres/meineseite.html aufrufe möchte ich, dass dann eine Authentifizierung vorgenommen wird (einfach ins www-Root Verzeichnis bzw. überall eine .htaccess hinlegen geht nicht, weil die Authentifizierung nur bei ganz bestimmten Verzeichnissen vorgenommen werden soll).
Ein Ansatz den ich probiert habe, ist über das mod_rewrite Modul.
Damit kann man ja URL's manipulieren und sozusagen automatisch aus
http://meincoolerserver/weiteres/meineseite.html
http://meincoolerserver/index.cgi?url=/weiteres/meineseite.html
machen. Allerdings greift mod_rewrite schon vor der htaccess - Prüfung ein, so dass das nicht funktioniert.
Hat jemand vielleicht eine Idee, wie man das anders lösen könnte oder wie man mod_rewrite dazu überreden kann erst "später" einzugreifen? In den offiziellen Dokumentationen hab ich erstmal nichts gefunden was mir weiterhilft.
Gruss
Michael
Hi!
Das funktioniert so nicht, da basic authentification nur bei http zugriffen greift, in der cgi-Datei greifst Du aber auf die Datei über das filesystem zu. Mod_rewrite bringt Dir hier nichts, entweder Du lesgt diese CGI-Datei in das Verzeichnis, welches geschützt werden soll, oder Du baust Dir eine eigene Authentifizierung.
Grüße
Andreas
Hallo,
Das funktioniert so nicht, da basic authentification nur bei http zugriffen greift, in der cgi-Datei greifst Du aber auf die Datei über das filesystem zu. Mod_rewrite bringt Dir hier nichts, entweder Du lesgt diese CGI-Datei in das Verzeichnis, welches geschützt werden soll, oder Du baust Dir eine eigene Authentifizierung.
Ohne jetzt Deine zweifelsohne liebgemeinte Antwort angreifen zu wollen, aber das ist genau das, was ich schon geschrieben habe. Ich wollte eigentlich eher ein Ausweg aus dem Dilemma.
Danke trotzdem.
Gruss
MichaelB
Hallo,
bleibt scheinbar nur ein denkbarer Ausweg:
Je nach Konfigurationsmöglichkeit des CGI-verarbeitenden Moduls kann man ja diesem Modul sagen, dass es nur bestimmte URL's annehmen soll. Dann sind wir auf jeden Fall nach den ganzen htaccess Kontrollen und das CGI-Skript muss dann die Aufgabe übernehmen die URL entsprechend auseinander zu pflücken. hm ...
Ich weiß zwar noch nicht, wie ich dass im Einzelnen realisiere aber so ungefähr wäre ein gangbarer Weg.
Na schaun wa mal.
Gruss
MichaelB
Hi Michael,
(warum ich das so machen möchte hat den Hintergrund, dass ich die
HTML-Dateien vor Auslieferung an den Browser modifizieren möchte).
warum mußt Du dafür die URLs umschreiben?
Schau Dir mal an, wie ich gzip_cnc als Handler einbinde:
http://www.schroepl.net/projekte/gzip_cnc/install.htm#activate
Das könnte für Deine Aufgabenstellung auch ausreichen.
Viele Grüße
Michael
Hallo,
(warum ich das so machen möchte hat den Hintergrund, dass ich die
HTML-Dateien vor Auslieferung an den Browser modifizieren möchte).
warum mußt Du dafür die URLs umschreiben?
Muss ich nicht. Das war nur eine Idee von mir es auf dem Weg zu lösen.
Schau Dir mal an, wie ich gzip_cnc als Handler einbinde:
Das könnte für Deine Aufgabenstellung auch ausreichen.
Klingt vielversprechend.
Danke für den Link
Gruss
MichaelB