Stefan: htaccess - Zugriff in Abhängigkeit der angesurften Domain beschr

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

  1. 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 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.)

    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

    1. 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

    2. 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