.htaccess de base auth par hôte virtuel?
Je me demandais si il était possible de créer une conditionnelle http basic auth exigence basée sur l'hôte virtuel URL dans un .fichier htaccess.
Par exemple ce que je veux faire est de les avoir mysite.com et test.mysite.com exécuter à partir de la même base de code dans le même répertoire, mais protéger par mot de passe test.mysite.com. Il serait d'installation de cette manière que je n'aurais pas besoin de branche mon code depuis mon code d'application peuvent voir les vhost/url-il est servi à partir de et choisissez la base de données pour fournir du contenu à partir d'.
OriginalL'auteur user410925 | 2011-09-07
Vous devez vous connecter pour publier un commentaire.
Vous pouvez sorte de bidouille en utilisant
mod_setenvif
avec lemod_auth
modules. Utiliser leSetEnvIfNoCase
directive de l'hôte qui est protégé par mot de passe. Vous aurez besoin d'un couple d'extra directives pour satisfaire accès:À l'intérieur de l'
Directory
bloc (ou tout simplement à l'air libre) vous avez votre auth choses de l'installation, quelque chose comme ceci:Maintenant pour le exiger/satisfaire trucs:
Cela fera en sorte de tout hôte qui ne correspond pas à
^test\.mysite\.com\.?(:80)?$
auront accès sans auth (Allow from env=!PROTECTED_HOST
) mais sinon, nous avons besoin d'un utilisateur valide (Require valid-user
). LeSatisfy any
assure que nous avons juste besoin de l'un des 2, soit le Permettent ou l'Exigent.Ce n'est pas ce que <IfDefine>. Ces variables sont définies par le
-D
option de ligne de commande. Ils ne sont pas des variables d'environnement.hmm, puis en dehors de l'attente pour mon hôte pour la mise à niveau d'Apache 2.4 (qui a la <Si> bloc...). Est-il possible d'obtenir le comportement que j'espérais? ... dans mes recherches, j'ai trouvé l'article suivant, qui semble indiquer qu'il y a aucun moyen de faire cela dans Apache 2.2 x : turboflash.wordpress.com/2010/05/27/...
Pas moyen que je connais, aussi loin que la création d'un bloc qui est appliquée étant donné une variable d'environnement
OriginalL'auteur Jon Lin
J'ai eu des problèmes de mise en œuvre de Jon solution:
Même si je suis assez familier avec la conf Apache et expressions régulières, l'authentification toujours tiré. À partir d'une rapide analyse, il semblait que les
Allow from env=!PROTECTED_HOST
ligne n'ont pas de coup de pied dans.Mais j'ai trouvé une autre solution qui semble effectivement plus sûr de moi:
J'ai créé deux hôtes virtuels pour les deux domaines pointant vers la même racine du document (ce qui est complètement autorisé par le chemin). Dans l'un des vhosts, j'ai ajouté les directives pour l'authentification basique (directement dans le vhost de la directive bloc).
Fonctionne comme un charme. Et j'ai un meilleur feeling que c'est vraiment sans danger - pas de risque de négliger les détails dans la regex modèle qui permettrait d'ouvrir les portes pour les intrus.
satisfy any
devrait vraiment être appliquée seulement si vous êtes l'hôte ne vous donne pas accès à vhost/la configuration du serveur et vous êtes de gauche avec un .htaccess solution.OriginalL'auteur Jpsy
Voici une solution similaire à ce que Jon Lin proposé, mais à l'aide de
RewriteCond
pour vérifier le nom de l'hôte:OriginalL'auteur Michał Wojciechowski