170 votes

Comment laisser PHP pour créer le sous-domaine automatiquement pour chaque utilisateur ?

Comment créer le sous-domaine comme http://user.mywebsite.com ? Ce que je dois accéder htaccess en quelque sorte ? Est-il simplement possible de le créer via le code php pur ou j’ai besoin d’utiliser certaines formulations de côté serveur-script externe ?

Pour ceux qui ont répondu : Eh bien, alors, devrais-je demander mon hébergement si elles fournissent une sorte d’accès DNS ??

143voto

Mark Biek Points 41769

Vous êtes à la recherche afin de créer un personnalisé , Un record.

Je suis assez sûr que vous pouvez utiliser des caractères génériques pour spécifier Un des dossiers qui vous permettrait de faire quelque chose comme ceci:

*.mywebsite.com       IN  A       127.0.0.1

127.0.0.1 sera l'adresse IP de votre serveur. La méthode de l'ajout de l'enregistrement dépendra de votre hôte.


Faire comme http://mywebsite.com/user serait beaucoup plus facile si c'est une option.

Ensuite, vous pouvez simplement ajouter un .fichier htaccess qui ressemble à ceci:

Options +FollowSymLinks

RewriteEngine On
RewriteRule ^([aA-zZ])$  dostuff.php?username=$1

Ci-dessus, les noms d'utilisateur sont limitées pour les caractères a-z


La règle de réécriture pour saisir le sous-domaine devrait ressembler à ceci:

RewriteCond %{HTTP_HOST} ^(^.*)\.mywebsite.com
RewriteRule (.*)  dostuff.php?username=%1

34voto

balupton Points 17805

La fonctionnalité que vous êtes après est appelé Générique de sous-Domaines. Il vous permet de ne pas avoir à la configuration DNS pour chaque sous-domaine, et au lieu d'utiliser apache réécrit pour la redirection. Vous pouvez trouver un bon tutoriel ici, mais il y a des milliers de tutos là-bas. Voici le code nécessaire à partir de ce tutoriel:

<VirtualHost 111.22.33.55>
    DocumentRoot /www/subdomain
    ServerName www.domain.tld
    ServerAlias *.domain.tld
</VirtualHost>

Cependant, comme il a exigé l'utilisation d'hôtes virtuels, il doit être réglé dans le serveur httpd.fichier conf, au lieu d'un local .htaccess.

23voto

gradbot Points 9219

Je le fais un peu différente de la marque. J’ai passer l’intégralité du domaine et de saisir le sous-domaine dans php.

Il ignore les images et tout le reste des cartes vers mon fichier index.php. Donc, si je vais à

Je serai de retour

Puis dans mon code index.php j’ai exploser juste mon nom d’utilisateur sur le nom d’hôte. Cela me donne belle jolie SEO URL.

8voto

Wimmer Points 752

Ne faites pas de chichi avec .htaccess lorsque vous pouvez utiliser Apache masse d'hébergement virtuel.

À partir de la documentation:

#include part of the server name in the filenames VirtualDocumentRoot /www/hosts/%2/docs

Dans un sens, c'est l'inverse de votre question: chaque "sous-domaine" est un utilisateur. Si l'utilisateur n'existe pas, vous obtenez une erreur 404.

Le seul inconvénient est que la variable d'environnement DOCUMENT_ROOT n'est pas correctement configuré pour la servir sous-répertoire, mais le défaut document_root dans de htconfig.

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