85 votes

Virtualhost Pour les sous-domaines Wildcard et Static

J'ai une situation bizarre où je veux avoir les url app1.example.com, example.com et *.example.com tout en utilisant un autre hôte virtuel. C'est ce que j'ai (à l'exclusion example.com cause elle permet simplement de 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>

Le problème est qu'ils entrent en conflit. À celui qui est indiqué en premier gagne. Comment puis-je héberger à la fois un caractère générique virtualhost et un spécifique?

Note: je ne suis pas simplement en changeant DocumentRoot dans la config, donc à l'aide d' mod_rewrite pour modifier le DocumentRoot variable ne pas le fixer.

Merci

175voto

Tim Points 2553
 NameVirtualHost *:80

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

Devrait marcher. La première entrée deviendra la valeur par défaut si vous n'obtenez pas de correspondance explicite. Donc, si vous aviez app.otherexample.com à pointer dessus, il serait intercepté par app1.example.com. Vous devez activer les hôtes virtuels nommés avec la première entrée.

0voto

Anh Nguyen Points 79

Assurez-vous que la ligne NameVirtualHost *: 80 n'est PAS commentée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X