htaccess - Zugriff in Abhängigkeit der angesurften Domain beschr
Stefan
- webserver
Hallo zusammen!
Ich suche nach einer Möglichkeit den Zugriff auf Verzeichnisse mit .htaccess-Dateien zu kontrollieren, und zwar in Abhängigkeit davon, über welche Domain die Inhalte abgerufen werden.
Hintergrund: Mein Provider verwendet Confixx, und das Root-Verzeichnis meines Webspace (/home/webXXX/html) ist erreichbar über eine Domain der Form http://webXXX.serverX.provider.de/. Ich möchte den Zugriff auf die Inhalte über diese Domain gerne unterbinden. Ich habe es bereits mit einer .htaccess-Datei mit folgendem Inhalt versucht:
order deny,allow
deny from all
Das hat jedoch zur Folge, dass gar keine Domain mehr funktioniert. (Meine Domains sind alle auf Unterverzeichnisse "geschaltet", etwa /home/webXXX/html/domain1.de/www.)
Wie kann ich abfragen über welche Domain / welchen virtuellen Host gerade Inhalte abgerufen werden, und die Zugriffsbeschränkung dementsprechend einstellen?
Schönen Gruß,
Stefan
Hi,
Hintergrund: Mein Provider verwendet Confixx, und das Root-Verzeichnis meines Webspace (/home/webXXX/html) ist erreichbar über eine Domain der Form http://webXXX.serverX.provider.de/. Ich möchte den Zugriff auf die Inhalte über diese Domain gerne unterbinden. Ich habe es bereits mit einer .htaccess-Datei mit folgendem Inhalt versucht:
order deny,allow
deny from allDas hat jedoch zur Folge, dass gar keine Domain mehr funktioniert. (Meine Domains sind alle auf Unterverzeichnisse "geschaltet", etwa /home/webXXX/html/domain1.de/www.)
Natuerlich, diese Einstellung bleibt ja auch ueber die Unterverzeichnisse erhalten, wenn du sie dort nicht wieder aufhebst.
Aber /home/webXXX/html zu sperren, und /home/webXXX/html/ wieder freizugeben, wuerde auch den Zugriff ueber http://webXXX.serverX.provider.de/domain1.de/ wieder ermoeglichen.
Wie kann ich abfragen über welche Domain / welchen virtuellen Host gerade Inhalte abgerufen werden, und die Zugriffsbeschränkung dementsprechend einstellen?
Nutze mod_rewrite.
In einer RewriteCond hast du Zugriff auf ettliche Umgebungsvariablen, u.a. auf HTTP_HOST.
MfG ChrisB
Hi,
Aber /home/webXXX/html zu sperren, und /home/webXXX/html/ wieder freizugeben, wuerde auch den Zugriff ueber http://webXXX.serverX.provider.de/domain1.de/ wieder ermoeglichen.
Das sollte natuerlich heissen:
Aber /home/webXXX/html zu sperren, und /home/webXXX/html/domain1.de/ wieder freizugeben, ...
MfG ChrisB
Challo ChrisB!
Nutze mod_rewrite.
In einer RewriteCond hast du Zugriff auf ettliche Umgebungsvariablen, u.a. auf HTTP_HOST.
Der Gedanke war mir zwischenzeitlich auch gekommen, aber danke für den Hinweis.
Folgende Lösung funktioniert nun bei mir:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} (^|.)domain1.de$ [NC,OR]
RewriteCond %{HTTP_HOST} (^|.)domain2-blablub.com$ [NC,OR]
RewriteCond %{HTTP_HOST} (^|.)domain3.net$ [NC,OR]
RewriteCond %{HTTP_HOST} (^|.)domain4-fasel.name$ [NC]
RewriteRule .* - [L]
RewriteRule .* - [F]
</IfModule>
Man beachte das "fehlende" OR-Flag bei der letzten RewriteCond!
Ich habe mich dafür entschieden alle erlaubten Domains aufzuführen, damit ich auf der sicheren Seite bin, falls es noch mehr Adressen für den Zugriff auf das Root-Verzeichnis gibt, von denen ich nicht weiß.
Alternativ kann man auch einfach den Zugriff über die unerwünschte Domain unterbinden, das ginge so (ungetestet):
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^webXXX.serverX.provider.de$ [NC]
RewriteRule .* - [F]
</IfModule>
Vielleicht hilft's ja noch jemand anderem weiter.
Schönen Gruß!
Stefan