J'ai plusieurs sites: example.com
, example1.com
et example2.com
. Tous pointent vers le dossier /public_html
de mon serveur, qui est mon dossier racine Apache.Utiliser l'authentification HTTP uniquement si j'accède à un domaine spécifique
Que dois-je ajouter à mon fichier .htaccess
pour utiliser l'authentification http uniquement si l'utilisateur provient de example2.com
? example.com
et example1.com
ne doit pas utiliser l'authentification.
Je sais que je dois quelque chose comme
AuthType Basic
AuthName "Password Required"
AuthUserFile "/path/to/.htpasswd"
Require valid-user
Mais je veux seulement besoin d'un mot de passe si l'utilisateur visite example2.com
.
Modifier
En utilisant une approche suggérée dans une réponse, je suit dans mon fichier .htaccess:
SetEnvIfNoCase Host ^(.*)$ testauth
<IfDefine testauth>
RewriteRule ^(.*)$ index2.php?q=$1 [L,QSA]
</IfDefine>
Je sais que le module mod_setenvif.c est activé (je l'ai vérifié avec un < IfModule> block), mais il semblerait que "testauth" ne soit jamais défini, car mon test à vérifier (rediriger vers index2.php) n'est pas en cours d'exécution (alors qu'il était exécuté dans mon bloc < IfModule>). Des idées pourquoi?
Si tous les domaines pointent vers le même endroit, pourquoi voudriez-vous protéger seulement l'un d'entre eux? Si vous utilisez réellement un contenu différent, pourquoi ne pas adopter une approche plus saine comme un dossier par domaine? –
Je lance une installation Drupal multisite à partir de mon dossier/public_html, et je souhaite créer une autorisation http globale sur l'un des sites, en plus de la connexion utilisateur normale de ce site. –
Le multisite de Drupal me permet d'exécuter différents sites Web à partir du même ensemble de fichiers PHP, mais avec des bases de données différentes (donc un contenu différent). Je pourrais faire une deuxième installation dans un sous-dossier, mais cela m'obligerait à maintenir des ensembles distincts de fichiers et de modules. –