Pregunta

Tengo una situación extraña en la que quiero tener las URL. app1.example.com, example.com y *.example.com todos usando un host virtual diferente.Esto es lo que tengo (excluyendo example.com porque simplemente lo hace más complicado).

<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>

El problema es que entran en conflicto.El que aparezca primero en la lista gana.¿Cómo puedo alojar un host virtual comodín y uno específico?

Nota:no solo estoy cambiando DocumentRoot en la configuración, por lo que usando mod_rewrite cambiar la variable DocumentRoot no lo soluciona.

¿Fue útil?

Solución

<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>

En caso de trabajar. La primera entrada se convertirá en el valor por defecto si no se obtiene una coincidencia explícita. Así que si había app.otherexample.com punto a ella, sería atrapado sea app1.example.com.

Otros consejos

Los comodines solo se pueden utilizar en ServerAlias ​​en lugar de ServerName.Algo que me dejó perplejo.

Para su caso de uso, lo siguiente debería ser suficiente

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

también hay más información en https://www.chris-shaw.com/blog/using-wildcards-in-virtual-hosts-on-apache

Esto también funciona para https necesitaban una solución para hacer directorios de proyectos ésta lo era. porque no le gusta el cromo no se usa SSL ssl más libre. Aviso: Mi servidor Web es Wamp64 en Windows 10, así que no usaría esta configuración debido a las variables a menos que su uso 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>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top