Je veux avoir cette situation:
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/
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>
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
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é.