web-dev-qa-db-fra.com

Création d'un sous-domaine générique à l'aide d'Apache VirtualHost

Je veux avoir cette situation:

  1. si l'utilisateur demande à l'aide de cette URL: example.com ou www.example.com, l'utilisateur verra index.php dans ce répertoire /home/admin1/public_html/

  2. mais lorsque l'utilisateur demande l'utilisation d'un autre sous-domaine (caractère générique), par exemple: freediscount.example.com, l'utilisateur verra index.php dans ce chemin: /home/admin1/public_html/userweb/freediscount.example.com

le support technique sur mon hébergement me suggère d'utiliser cette méthode: http://www.wiredstudios.com/php-programming/setting-up-wildcard-dns-for-subdomains-on-cpanel.html

sur la base de ce tutoriel, le PHP a un nouveau travail ... pour rediriger sur un dossier spécifique lorsque la demande de l'utilisateur avec un sous-domaine. Je n'aime pas cette méthode. pour moi, ce serait mieux si Apache peut gérer cela.

cette méthode est presque proche de ce dont j'ai besoin: Virtualhost pour le sous-domaine générique et le sous-domaine statique

mais j'ai un problème avec le paramètre VirtualHost, comment créer correctement VirtualHost pour cette situation?

voici ce que j'ai fait mais qui n'a pas fonctionné:

## I think this one is for www or without www, automatically generated with WHM
<VirtualHost xx.xx.xx.xx:80> 
ServerName example.com
ServerAlias www.example.com
DocumentRoot /home/admin1/public_html
</VirtualHost>

## Here's what I'm trying to add
<VirtualHost xx.xx.xx.xx:80>
    ServerName example.com
    DocumentRoot /home/admin1/public_html/userweb/*
</VirtualHost>
16
Saint Robson

Les sous-domaines génériques sont certainement possibles en utilisant des hôtes virtuels Apache.

J'avais fondamentalement les mêmes exigences et j'ai réussi à le faire fonctionner avec Apache's mod_vhost_alias.so module. Essayez ceci dans votre http-vhosts.conf fichier:

DocumentRoot "/home/admin1/public_html/userweb/" 
<Directory "/home/admin1/public_html/userweb/"> 
    Options None 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
</Directory>

<VirtualHost *:80>
    DocumentRoot /home/admin1/public_html/
    ServerName www.example.com
</VirtualHost>

<VirtualHost *:80> 
    VirtualDocumentRoot /home/admin1/public_html/userweb/%1.example.com/ 
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /home/admin1/public_html/
    ServerName example.com
</VirtualHost>

Notez que je n'ai pas testé cela, mais c'est assez proche de la solution qui a fonctionné pour moi.

Les détails complets de ma solution sont ici: http://www.calcatraz.com/blog/wildcard-subdomains-in-Apache-1422

14
Dan

Essayez avec ceci:

NameVirtualHost *:80

<VirtualHost *:80>
  DocumentRoot /home/admin1/public_html/
  ServerName www.example.com
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /home/admin1/public_html/userweb/freediscount.example.com
  ServerName  other.example.com
  ServerAlias *.example.com
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /home/admin1/public_html/
  ServerName example.com
</VirtualHost>

L'ordre des hôtes virtuels et leur spécificité.

9
tonino.j