VirtualHost und Passwortschutz unmöglich?
Martin Bertens
- webserver
0 wahsaga0 Martin Bertens0 dedlfix
Hallo Forum,
ich muss einen Apache VirtualHost-Eintrag nutzen, um eine Subdomain vor externem Zugriff zu schützen. Nun kann man aber so etwas:
AuthName "geheim"
AuthType Basic
AuthUserFile /www/.htpasswd
Require user nullnull7
...leider nicht in die VirtualHost-Direktive einfügen:
http://httpd.apache.org/docs/1.3/mod/core.html#authname
"Context: directory, .htaccess"
Welche Alternativen habe ich denn? Directory und .htaccess scheiden leider aus, die dürfen auch domainübergreifend keine Unterschiede aufweisen. Kann man auf Ebene der VirtualHost-Einträge denn gar keinen Schutz einbauen?
Danke und Grüsse,
Martin
hi,
Directory und .htaccess scheiden leider aus, die dürfen auch domainübergreifend keine Unterschiede aufweisen.
Warum müssen die deshalb ausscheiden?
Es wäre ja noch denkbar, über die Abfrage von Umgebungsvariablen (z.B. im Request mitgeschickter Hostname) mittels SetEnvIf und Allow/Require/Satisfy eine Kombination aufzubauen, die nur bei Anforderung der speziellen Subdomain eine Authentifizierung erfordert, und ansonsten so reinlässt ...
gruß,
wahsaga
Warum müssen die deshalb ausscheiden?
Es wäre ja noch denkbar
Ok, es geht mir darum, dass ich die Konfiguration einer weiteren Subdomain, die die selbe Verzeichnisstruktur etc. nutzt an genau einer Stelle, nämlich im _Kontext_ des VirtualHosts einstellbar machen möchte. Mit SetEnv kann ich dann zwar irgendeinen Wert setzen, der die Subdomain identifizierbar macht, ich kann aber in der für alle Subdomains zentralen .htaccess-Datei den mit SetEnv gesetzten Wert nicht auswerten, oder doch?
Danke und Grüsse,
Martin
hi,
Mit SetEnv kann ich dann zwar irgendeinen Wert setzen, der die Subdomain identifizierbar macht, ich kann aber in der für alle Subdomains zentralen .htaccess-Datei den mit SetEnv gesetzten Wert nicht auswerten, oder doch?
Oder doch, würde ich sagen.
gruß,
wahsaga
Mist, jetzt habe ich es an die falsche Stelle gepostet. Deswegen hier nochmal (Ich hoffe ich habe durch dieses Crossposting keine ungeschriebene Forumsregel gebrochen, man verzeihe mir):
Hallo wahsaga,
wärst Du so freundlich mir noch einen Tipp zu geben, wie? Ich habe die Apache-Doku gründlich durchgelesen und finde keinen Hinweis darauf, wie man in .htaccess-Dateien die mit SetEnv gesetzten Werte ausliest und als Variable, zum Beispiel an
Require user <Variable>
übergibt. Vielen Dank dafür!
Martin
hi,
Ich habe die Apache-Doku gründlich durchgelesen und finde keinen Hinweis darauf, wie man in .htaccess-Dateien die mit SetEnv gesetzten Werte ausliest
"Auslesen" weniger, eher darauf reagieren.
und als Variable, zum Beispiel an
Require user <Variable>
übergibt.
Nee, so geht's nicht.
Mit
SetEnvIf {bedingung} varName
eine Umgebungsvariable setzen, für den ungeschützten Zugriff, und mit
Allow from env=varName
den Zugriff erlauben, wenn eben dieses varName gesetzt ist.
Daneben noch mit
Require valid user (o.ä.)
die Bedingung für den Passwortschutz formulieren - und dann mittels
Satisfy any
dafür sorgen, dass Zugriff erlaubt wird, wenn eine der beiden "Bedingungen" (Allow oder Require) erfüllt ist ...
gruß,
wahsaga
Hallo wahsaga,
wärst Du so freundlich mir noch einen Tipp zu geben, wie? Ich habe die Apache-Doku gründlich durchgelesen und finde keinen Hinweis darauf, wie man in .htaccess-Dateien die mit SetEnv gesetzten Werte ausliest und als Variable, zum Beispiel an
Require user <Variable>
übergibt. Vielen Dank dafür!
Martin
echo $begrüßung;
ich muss einen Apache VirtualHost-Eintrag nutzen, um eine Subdomain vor externem Zugriff zu schützen. Nun kann man aber so etwas:
...leider nicht in die VirtualHost-Direktive einfügen:"Context: directory, .htaccess"
Mit directory ist gemeint:
<Directory /pfad/zum/verzeichnis>
...
</Directory>
Diese Anweisung kann auch in der Konfiguration virtueller Hosts stehen.
echo "$verabschiedung $name";