Frage

Ich habe eine Website, die bestimmte Inhalte serviert auf der Basis der Sub-Domain. So ist es der gleiche Satz von Dateien, und vielleicht der Header und einige Informationen in den Site-Seiten Änderungen basierend auf dem Sub-Domain.

Ich brauche verschiedene htpassword Authentifizierung haben als auch auf der Basis der Sub-Domain, kann aber nicht Informationen finden, wie eine if / then Art der Sache in htaccess zu tun.

Im Grunde, was ich brauche, ist dies:

, wenn Sub-Domain = 'abc' Mit dieser htpassword Datei

, wenn Sub-Domain = 'def' Mit dieser htpassword Datei

Kann dies geschehen?

War es hilfreich?

Lösung

Versuchen Sie etwas wie folgt aus:

SetEnvIf Host ^abc\. HOST_ABC
SetEnvIf Host ^dev\. HOST_DEF

<IfDefine HOST_ABC>
    AuthUserFile …
</IfDefine>
<IfDefine HOST_DEF>
    AuthUserFile …
</IfDefine>

Andere Tipps

welche Webserver verwenden Sie?

eine Technik, die auf verschiedenen Servern arbeiten können (es funktioniert sicher in Apache) ist eine andere .htaccess-Datei im Verzeichnis müssen jede Sub-Domain entsprechen.

Wenn es mir (und ich habe nicht gedacht, bevor zu tun) ich würde:

  1. Verwenden Sie einen internen Redirect mit mod_rewrite zu anderen Standort Wurzeln (/ suba oder / subb) in Abhängigkeit von einigen Faktoren (emuliert IF / ELSE)
  2. Mit Symlinks auf das öffentliche Verzeichnis, aber nicht die .htaccess

so:

/sites/subdomain_a/.htaccess
/sites/subdomain_a/pub
/sites/subdomain_b/.htaccess
/sites/subdomain_b/pub

Dabei steht

/sites/subdomain_a/pub == /sites/subdomain_b/pub

mit

ln -s

oder ähnliches. Dann mod_rewrite verwenden, um (intern) auf die rechte Seite root zu umleiten. I denken mod_rewrite ausgeführt wird, bevor .htaccess geladen wird.

Das heißt, Sie effektiv auf der Sub-Domain die gleichen Site-Dateien mit einer anderen .htaccess je verbüßen.

Hope, das hilft, bisschen wie ein Hack.

Möchten interessiert sein zu sehen, ob etwas besser existiert.

Sie können nicht, wenn / sonst verwenden, da .htaccess nicht eine Liste von Anweisungen. Aber, wenn Sie einen bedingten Block wie oder , können Sie verschiedene Richtlinien verwenden, auf deren Basis Sub-Domain beantragt wird. Ich bin nicht sicher, welche Sie würde allerdings verwenden ...

Sie können auch stellen eine .htaccess-Datei eine Ebene über die Dateien und verwenden unterschiedliche Regeln für jede Sub-Domain angeben, aber die Sub-Domain-Verzeichnisse alle Symlinks in das gleiche Verzeichnis mit den freigegebenen Dateien werden machen.

so wäre dies das Verzeichnis über dem Web-Root (e):
.htaccess
sitefiles
subdomain1 (symbolischer Link zu sitefiles)
subdomain2 (symbolischer Link zu sitefiles)
...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top