Comment créer un sous-domaine tel que http://user.mywebsite.com ? Dois-je accéder à htaccess d'une manière ou d'une autre? Est-il en fait simplement possible de le créer via du code php pur ou j'ai besoin d'utiliser un langage externe côté serveur de script?
A ceux qui ont répondu: Eh bien, devrais-je demander à mon hébergement s'il fournit une sorte d'accès DNS?
wildcard subdomains
cela peut être réalisé dans.htaccess
. Voir ma solution.Réponses:
Vous cherchez à créer un enregistrement A personnalisé .
Je suis presque sûr que vous pouvez utiliser des caractères génériques lors de la spécification des enregistrements A, ce qui vous permettrait de faire quelque chose comme ceci:
127.0.0.1 serait l'adresse IP de votre serveur Web. La méthode pour ajouter réellement l'enregistrement dépendra de votre hôte.
Le faire comme http://mywebsite.com/user serait beaucoup plus facile à configurer si c'est une option.
Ensuite, vous pouvez simplement ajouter un fichier .htaccess qui ressemble à ceci:
Dans ce qui précède, les noms d'utilisateur sont limités aux caractères az
La règle de réécriture pour récupérer le sous-domaine ressemblerait à ceci:
la source
La fonctionnalité que vous recherchez est appelée sous- domaines génériques . Cela vous permet de ne pas avoir à configurer DNS pour chaque sous-domaine et d'utiliser à la place des réécritures apache pour la redirection. Vous pouvez trouver un beau tutoriel ici , mais il existe des milliers de tutoriels. Voici le code nécessaire de ce tutoriel:
Cependant, comme il a nécessité l'utilisation de VirtualHosts, il doit être défini dans le fichier httpd.conf du serveur, au lieu d'un .htaccess local.
la source
Je le fais un peu différemment de Mark. Je passe le domaine entier et récupère le sous-domaine en php.
Cela ignore les images et mappe tout le reste à mon fichier index.php. Donc si je vais à
Je reviens
Ensuite, dans mon code index.php, je viens d'exploser mon nom d'utilisateur hors du nom d'hôte. Cela me donne de jolies URL de référencement.
la source
Nous configurons un DNS générique comme expliqué ci-dessus. Donc, l'enregistrement a est * .votrenom.com
Ensuite, tous les sous-domaines vont en fait au même endroit, mais PHP traite chaque sous-domaine comme un compte différent.
Nous utilisons le code suivant:
Ce code définit simplement la
$account
variable de la même manière que le sous-domaine. Vous pouvez ensuite récupérer leurs fichiers et autres informations en fonction de leur compte.Ce n'est probablement pas aussi efficace que les méthodes décrites ci-dessus, mais si vous n'avez pas accès à BIND et / ou à un .htaccess limité, cette méthode devrait fonctionner (tant que votre hôte configurera le caractère générique pour vous).
Nous utilisons en fait cette méthode pour nous connecter à la base de données des clients pour une application de commerce électronique multi-entreprises, mais cela peut également fonctionner pour vous.
la source
Ne vous embêtez pas avec les fichiers .htaccess lorsque vous pouvez utiliser l' hébergement virtuel de masse Apache .
De la documentation:
D'une certaine manière, c'est l'inverse de votre question: chaque «sous-domaine» est un utilisateur. Si l'utilisateur n'existe pas, vous obtenez un 404.
Le seul inconvénient est que la variable d'environnement
DOCUMENT_ROOT
n'est pas correctement définie sur le sous-répertoire utilisé , mais sur la racine_document par défaut dans de htconfig.la source
Solution PHP simple pour les sous-domaines et les applications Web multi-domaines
Étape 1. Fournissez l'enregistrement DNS A comme "*" pour les domaines (ou domaine) que vous allez servir "example.org"
Étape 2. Vérifiez l'unicité des connexions lors de l'enregistrement ou du changement de connexion de l'utilisateur. Évitez également les points dans ces connexions.
Étape 3. Vérifiez ensuite la requête
Cette solution peut desservir différents domaines
Si vous avez besoin des mêmes pseudonymes sur différents domaines servis différemment, vous devrez peut-être stocker le choix de l'utilisateur pour le domaine lors de l'enregistrement de la connexion.
la source
Vous pourriez [potentiellement] faire une réécriture de l'URL, mais oui: vous devez avoir le contrôle de vos paramètres DNS afin que lorsqu'un utilisateur est ajouté, il obtienne son propre sous-domaine.
la source
En plus des modifications de configuration sur votre serveur WWW pour gérer le nouveau sous-domaine, votre code devra apporter des modifications à vos enregistrements DNS. Donc, à moins que vous n'exécutiez votre propre BIND (ou similaire), vous devrez comprendre comment accéder à la configuration de votre fournisseur de serveur de noms. S'ils n'offrent pas une sorte d'API, cela peut devenir délicat.
Mise à jour: oui, je vérifierais auprès de votre registraire s'il fournit également le service de serveur de noms (comme c'est souvent le cas). Je n'ai jamais exploré cette option auparavant, mais je soupçonne que la plupart des bureaux d'enregistrement de consommateurs ne le font pas. J'ai recherché sur Google les API GoDaddy et les API DNS GoDaddy, mais je n'ai rien pu activer, alors je suppose que la meilleure option serait de consulter l'aide en ligne avec votre fournisseur, et si cela ne répond pas à la question, contactez-nous de leur personnel de soutien.
la source
Tout d'abord, vous devez vous assurer que votre serveur est configuré pour autoriser les sous-domaines génériques. J'ai réalisé cela dans JustHost en créant un sous-domaine nommé manuellement
*
. J'ai également spécifié un dossier appelésubdomains
comme racine du document pour les sous-domaines génériques. Ajoutez ceci à un.htaccess
fichier dans votre dossier de sous-domaines:Enfin, tout ce que vous avez à faire est de créer un dossier dans votre dossier sous-domaines, puis de placer les fichiers du sous-domaine dans ce répertoire.
la source
Cela peut être réalisé à
.htaccess
condition que votre serveur soit configuré pour autoriser les sous-domaines génériques. J'ai réalisé cela dans JustHost en créant un sous-domaine nommé manuellement*
et en spécifiant un dossier appelé sous-domaines comme racine du document pour les sous-domaines génériques. Ajoutez ceci à votre.htaccess
fichier:Enfin, créez un dossier pour votre sous-domaine et placez les fichiers de sous-domaines.
la source
Je voulais juste ajouter que si vous utilisez CloudFlare (gratuit), vous pouvez utiliser leur API pour gérer facilement votre DNS.
la source
(1) .htaccess racine
Ce fichier est la redirection http://www.yourwebsite.com vers http://yourwebsite.com pour une utilisation sur la page d'accueil. Toute la redirection du sous-domaine vers yourwebsite_folder
(2) Dossier intérieur .htaccess
Ce fichier réécrit les URL du sous-domaine.
http://yourwebsite.com/index.php?siteName=9lessons à http://9lessons.yourwebsite.com
Autres astuces .htaccess: Tutoriel et astuces sur les fichiers Htaccess.
index.php
Ce fichier contient du code PHP simple, utilisant des expressions régulières validant la valeur du sous-domaine.
Aucun dossier de sous-domaine
Si vous utilisez le répertoire racine (htdocs / public_html) comme répertoire de projet, utilisez ce fichier .htaccess suivant.
la source