DNS générique et sous-domaines dynamiques

Pendant tout mon temps libre (ha!), J'ai travaillé pour envelopper le Carte illimitée des oiseaux sauvages application avec une application d'entreprise qui permettra aux gens de concevoir leur propre localisateur de magasin. Développer ma propre solution Software as a Service est l'un de mes objectifs depuis plusieurs années, et c'est une excellente opportunité.

Il y a deux fonctionnalités clés disponibles dans le commerce que je voulais intégrer à l'application et qui s'avèrent être un énorme défi, alors je voulais en discuter au cas où vous voudriez faire de même. Les deux fonctionnalités sont courantes dans toutes les applications, mais j'ai découvert que même si elles sont courantes, de nombreux fournisseurs d'hébergement ne les prennent pas en charge!

Mon objectif est de créer une application en libre-service où le client peut configurer son propre sous-domaine (http://sous-domaine.mondomaineapplication.com), ou même appliquer leur propre sous-domaine (http://sous-domaine.votredomaine.com). Pour qu'il soit en libre-service, il nécessite la capacité de programmer la solution - mais il accède à certains fichiers de configuration de serveur de noms de domaine qui sont interdits avec la majorité des comptes d'hébergement! Le problème est la prise en charge du DNS Wildcard, c'est-à-dire de pouvoir pointer n'importe quel sous-domaine vers le domaine du serveur. En d'autres termes, test.domain.com ou www.domain.com ou any.domain.com pointent tous vers le même endroit. Peu importe ce que vous écrivez, cela fonctionnera.

En dehors des applications, c'est en fait une fonctionnalité assez intéressante à activer - même sur votre blog. Cela permettrait à n'importe qui d'écrire quoi que ce soit d'artificiel.votredomaine.com et amenez-les à yourdomain.com. Vous seriez surpris du nombre de mauvais liens qui pointent vers votre blog ou votre site Web. Cela pourrait être du trafic manqué si la personne ne reconnaît pas qu'il s'agit d'une erreur avec le lien.

Le processus fonctionne en réécrivant le sous-domaine dans une chaîne de requête avant que la page ne soit réellement rendue par le serveur Web ... donc subdomain.domain.com est en fait interprété par les serveurs Apache comme domain.com?what=subdomain via l'utilisation d'un fichier htaccess:

# Extraire la partie sous-domaine de domain.com
RewriteCond% {HTTP_HOST} ^ ([^ \.] +) \. Yourdomain \ .com $ [NC]
 
# Vérifiez que la partie sous-domaine n'est pas www et ftp et mail
RewriteCond% 1! ^ (Www | ftp | mail) $ [NC]
 
# Redirige toutes les requêtes vers un script php en passant en argument le sous-domaine
RewriteRule ^. * $ Http://www.votredomaine.com/%1 [R, L]

Il y a des informations supplémentaires sur les fichiers que vous devez modifier sur V-nessa.net. Notez que les fichiers peuvent ne pas être situés à l'endroit spécifié en fonction de votre fournisseur d'hébergement. Mon fournisseur d'hébergement est en fait très favorable à l'ingérence des gens, mais ils préviennent que cela pourrait annuler le support client. En plus du «piratage à vos risques et périls», ils ne vont pas non plus vous aider.

Je vais travailler sur le développement du reste de l'application plutôt que de m'accrocher au développement du sous-domaine. Je vais en fait donner CakePHP un cliché à utiliser comme cadre pour cela!

Dernière note, je suis un peu un hack sur ce truc. J'ai la chance d'avoir des équipes de développement à mon travail pour résoudre ce problème. Seul, je suis un peu dangereux. Tout commentaire et aide sont appréciés!

3 Commentaires

  1. 1

    Très cool. En fait, j'ai utilisé le serveur de noms de mon registraire avec un DNS générique lorsque j'étais avec SliceHost, et j'avais configuré Apache pour servir des sous-domaines non configurés à partir des fichiers de domaines normaux.

    J'étais vraiment intrigué de regarder le framework CakePHP, mais votre lien est mort 🙂

    CakePHP peut être trouvé sur http://cakephp.ORG

    • 2

      Je pensais aussi suivre la voie du registre, Alex. C'est une excellente idée - probablement la meilleure façon de gérer cela.

      Désolé pour le lien mort - il est corrigé maintenant.

  2. 3

Que pensez-vous?

Ce site utilise Akismet pour réduire les spams. Découvrez comment sont traitées les données de vos commentaires..