Frage

Ich habe eine merkwürdige Situation, wo ich die URLs app1.example.com, example.com haben will und *.example.com alle einen anderen virtuellen Host verwenden. Dies ist, was ich habe (ohne example.com weil es macht es nur Messier).

<VirtualHost *>
  ServerName app1.example.com
  ServerAlias app1.example.com

  DocumentRoot = /var/www/app1
  # Other configuration for this app here

</VirtualHost>

<VirtualHost *>
  ServerName wildcard.example.com
  ServerAlias *.example.com

  DocumentRoot = /var/www/wildcard
  # other configuration for this app here

</VirtualHost>

Das Problem ist, dass sie Konflikte. Unabhängig davon, welche man zuerst genannt siegt. Wie kann ich sowohl eine Wildcard Virtualhost und einen spezifischen Host?

Hinweis: Ich bin gerade nicht DocumentRoot in der Config ändern, so mod_rewrite mit den DocumentRoot Variablen ändern es nicht beheben

.
War es hilfreich?

Lösung

<VirtualHost *:80>
  DocumentRoot /var/www/app1
  ServerName app1.example.com
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /var/www/example
  ServerName example.com
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /var/www/wildcard
  ServerName other.example.com
  ServerAlias *.example.com
</VirtualHost>

Sollte funktionieren. Der erste Eintrag wird den Standard wird, wenn Sie kein explizites Spiel bekommen. Also, wenn Sie app.otherexample.com Punkt haben, wäre es app1.example.com gefangen werden.

Andere Tipps

Wildcards können nur in dem Serveralias verwendet werden, anstatt der Servernamen. Etwas, das hatte mich ratlos.

Für Ihren Anwendungsfall sollten Folgendes genügen

<VirtualHost *:80>
    ServerAlias *.example.com
    VirtualDocumentRoot /var/www/%1/
</VirtualHost>

gibt es auch weitere Informationen unter https: //www.chris-shaw.com/blog/using-wildcards-in-virtual-hosts-on-apache

Das funktioniert auch für https eine Lösung benötigt, um zu machen Projektverzeichnisse dies es war. da Chrom verwendet keine nicht ssl gerne mehr kostenlos ssl. Hinweis: My Web Server ist Wamp64 unter Windows 10, so würde ich nicht diese Konfiguration verwenden, da der Variablen, es sei denn Ihr mit wamp.

<VirtualHost *:443>
ServerAdmin test@test.com
ServerName test.com
ServerAlias *.test.com

SSLEngine On
SSLCertificateFile "conf/key/certificatecom.crt"
SSLCertificateKeyFile "conf/key/privatecom.key"

VirtualDocumentRoot "${INSTALL_DIR}/www/subdomains/%1/"

DocumentRoot "${INSTALL_DIR}/www/subdomains"
<Directory "${INSTALL_DIR}/www/subdomains/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>

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