Verwenden Sie HTTP-Authentifizierung nur beim Zugriff auf eine bestimmte Domäne

9

Ich habe mehrere Websites: example.com , example1.com und example2.com . Alle verweisen auf den Ordner /public_html meines Servers, der mein Apache-Stammordner ist.

Was muss ich meiner .htaccess -Datei hinzufügen, um die http-Authentifizierung nur zu verwenden, wenn der Benutzer von example2.com kommt? example.com und example1.com sollten KEINE Authentifizierung verwenden.

Ich weiß, ich brauche etwas wie

%Vor%

Aber ich möchte nur ein Passwort verlangen, wenn der Benutzer example2.com besucht.

Bearbeiten

Unter Verwendung eines in einer Antwort vorgeschlagenen Ansatzes habe ich folgendes in meiner .htaccess-Datei:

%Vor%

Ich weiß, dass das mod_setenvif.c-Modul aktiviert ist (ich habe es mit einem & lt; IfModule & gt; -Block verifiziert), aber es scheint, dass "testauth" niemals definiert wird, weil mein Test überprüft werden muss (Weiterleitung zu index2.php) wird nicht ausgeführt (während es in meinem & lt; IfModule & gt; -Block ausgeführt wurde). Irgendwelche Ideen warum?

    
Dave DeLong 31.08.2009, 21:19
quelle

5 Antworten

17

Wie wäre es mit etwas Ähnlichem in der Datei htaccess im Dokumentenstamm:

%Vor%

Dies macht es so, dass eine Authentifizierung nicht erforderlich ist, es sei denn, der Host endet mit example2.com (z. B. www.example2.com , dev.example2.com usw.). Der Ausdruck kann bei Bedarf angepasst werden. Jeder andere Host bewirkt, dass require_auth var nicht gesetzt wird und die Authentifizierung nicht erforderlich ist. Wenn dies andersherum sein muss, könnte die letzte Zeile geändert werden in: Allow from env=require_auth , Entfernen der ! .

    
Jon Lin 25.07.2012 09:45
quelle
5

Hier ist eine Empfehlung:

Erstellen Sie eine Datei namens common.conf und speichern Sie sie an einem zugänglichen Ort

Platzieren Sie in dieser Datei die Apache-Konfiguration für alle Sites (Hosts).

Das Entfernen des aktuellen einzelnen VirtualHost-Eintrags und Ersetzen durch VirtualHost-Einträge wie folgt:

%Vor%     
William Greenly 25.07.2012 13:41
quelle
2

Ich frage mich, ob DanH von einem Ansatz unterstützt werden würde, der den Zugriff per IP-Adresse erlaubt?

Etwas wie

%Vor%

und dann in deinem Drupal "container"

%Vor%

sollte den Trick machen.

Jeder Host, der "live" ist, sollte auf "AllowMeIn" konfiguriert werden, oder Sie müssen von einer bekannten IP-Adresse kommen (dh Sie und andere Entwickler).

    
Colin 't Hart 25.07.2012 09:08
quelle
1

Sie sollten per-vhost-Konfiguration nicht in .htaccess einfügen. Setzen Sie stattdessen den Konfigurationsblock in den VirtualHost-Block in der richtigen Konfigurationsdatei in /etc/apache/sites-enabled/* .

    
Martin v. Löwis 31.08.2009 22:02
quelle
1

Apache 2.4 bietet eine semantische Alternative zur If -Direktive:

%Vor%     
rebroken 13.12.2016 05:49
quelle