8
votes

Sous-domaine dynamique PHP

D'accord, cela aurait pu être répondu auparavant, mais apparemment jusqu'à maintenant, je n'ai toujours pas trouvé la réponse.

Vous remarquerez peut-être que certains sites Web peuvent permettre aux utilisateurs de s'inscrire pour obtenir instantanément un sous-domaine propre sur le site Web.

Par exemple, le domaine est www.domain.com. Si j'inscrit un nouvel utilisateur comme Henson, j'aurai une page de page sur le site Web, ex: www.henson.domain.com (pas sûr si la partie www est nécessaire) Donc, si un utilisateur ouvre www.henson.domain.com, il ouvrira en réalité www.domain.com?OWNER=HENSON

Puis-je faire cela en utilisant uniquement Htaccess? Parce que j'ai lu quelque part que cela a également besoin de création manuelle de sous-domaines dans CPanel (qui défait le but du site Web).

OH, le site Web est codé avec Flat PHP, donc pas de frameworks MVC. Si quelqu'un sait comment le faire facilement avec des cadres (de préférencedeigniter), soyez invité à répondre.

Merci pour la réponse.


2 commentaires

Cochez cette case sur Stackoverflow.com/Questtions/586129/...


Voir ma solution. À condition que vous puissiez activer wildcard sous-domaines , ceci peut être réalisé dans .htaccess .


4 Réponses :


5
votes

Vous ne pouvez pas dans htaccess , vous devez configurer un hôte virtuel de carte wild et le réécrire à l'URL / répertoire dont vous avez besoin. Voir http://blog.orite.com.au/web_development/2009-01-22/Setting-up-wildcard-virtual-hosts-for-web-development-environment/ Pour plus d'informations


12 commentaires

Vous ne pouvez pas dans HTACCESS . En fait ... corz.org/serv/tricks/htaccess2.php (rechercher 'Plusieurs domaines en une racine').


J'ai lu cela, et le code est comme ceci: VirtualDocumentroot C: / Projets /% 1 / Où dois-je mettre ce code? Dans htaccess?


Dans le httpd.conf ou un fichier équivalent (dépendant du système).


D'accord, c'est si j'essaie que dans mon localhost. Alors qu'en est-il de l'hébergement? Et certains sites Web peuvent lier le domaine acheté (par exemple acheté.com) sur leurs sites Web principaux. Comment est-ce réalisable?


@PassCod, en fait, vous ne pouvez pas. Cette méthode ne s'applique que si le serveur Web est déjà configuré pour mapper les deux domaines sur un répertoire.


@Henson, même applique la météo sur votre serveur Web local ou un serveur Web distant. Vous aurez besoin d'accéder au fichier de configuration HTTP.


Mise à jour, j'ai activé le module vhost_alias, ajoutez ligne dans le bas de httpd.conf, redémarrez WAMP, puis essayez le projet.LocalHost et a échoué. Il redirige vers Project.LocalHost dans Firefox et Chrome, il affiche simplement aucune page trouvée.


@Henson, vous devez vous assurer que project.localhost indique l'adresse IP des serveurs Web. Sur un serveur Web de développement de Windows local, vous devez modifier C: \ windows \ system32 \ pilotes \ etc \ hosts et ajouter 127.0.0.1 projet.localhost


@Petah: Ok, je l'obtiens. Alors, comment puis-je le faire de manière dynamique / automatiquement? Je veux dire, chaque fois, un utilisateur registre, il y aura un nouveau sous-domaine. D'après ce que vous dites, je dois entrer manuellement pour chaque nouveau sous-domaine?


@Henson, une fois que vous avez un DNS (ou un fichier hôte si elle fonctionnait localement) pointant à droite IP / domaine (vous aurez besoin d'un enregistrement DNS Wild Card), il sera automatique. Vous aurez juste besoin de créer le bon répertoire sur le registre.


@ FélixsaParelli En fait, cela peut être réalisé en utilisant .htaccess . Voir ma solution.


"En fait" mon commentaire dit la même chose. Vous vouliez probablement cibler votre commentaire à quelqu'un d'autre.



0
votes

Vous pouvez analyser $ _ serveur ['nom_serveur'] pour déterminer quel sous-domaine est utilisé. La partie www n'est effectivement jamais nécessaire. C'est simplement un sous-domaine qui n'a aucune signification. La plupart du temps, il est simplement mappé sur le domaine principal. Exemple: xxx


0 commentaires

5
votes

Si vous avez CPanel sur votre serveur, il existe un XMLAPI qui vous permet de créer de manière dynamique des sous-domaines via PHP.

Oui, dynamiquement, pas manuellement. Je viens de passer les 2 derniers jours à ce sujet (création dynamique de tout de sous-domaines à envoyer par courrier électronique à Addon Domains et SQL DBS, utilisateurs ... Tout) et cPanel API gère tout, proprement. Alors, prenez un moment et de la comprendre. P>

Téléchargez le XMLAPI au premier lien de cette page: http: //forums.cpanel .NET / F42 / XML-API-PHP-Class-Version-1-0-A-136449.html . Le fichier xmlapi.php est le seul dont vous avez besoin sur votre serveur. P>

Cette page de forum est un cimetière cauchemin de demi-exemples de travail écrits par des codeurs très avancés et / ou très hacky sans point de départ clair. P>

Voici un script de base en PHP pour ajouter des sous-domaines, remplacez les capuchons avec vos valeurs personnelles. Cela m'a pris un peu de temps pour avoir raison. Bonne chance! Prochaines étapes, frappez ce lien de forum et lisez toutes les autres fonctions API1 et API2! P>

include("PATH_TO_THE_DOWNLOADED_xmlapi.php");

    $ip = "YOUR_IP_ADDRESS";
$root_pass = "ROOT_CPANEL_PASSWORD!";


$xmlapi = new xmlapi($ip);
$xmlapi->password_auth("root",$root_pass);

$account = "YOUR_CPANEL_MAIN_ACCNT_NAME";


print $xmlapi->api2_query($account, 'SubDomain','addsubdomain', array(dir=>"public_html/NAME_OF_SUBDOMAIN", domain=>"NAME_OF_SUBDOMAIN", rootdomain=>"MAIN_DOMAIN.com") );


0 commentaires

0
votes

Ceci peut être atteint dans .htaccess à condition que votre serveur soit configuré pour permettre aux sous-domaines génériques. J'ai réalisé que dans Justhost en créant un sous-aimain nommé manuellement * et spécifiant un dossier appelé sous-domaines comme racine de document pour les sous-domaines génériques. Ajoutez ceci à un fichier .htacaccess dans votre dossier sous-domaines: xxx

Enfin, créez un dossier pour votre sous-domaine et placez les fichiers sous-domaines.


0 commentaires