2010-09-27 2 views
1

Je cherche à créer une URL de vanité pour mes utilisateurs. Comment puis-je le faire?Comment créer des sous-liens pour l'utilisateur à l'inscription?

Je veux quelque chose comme username.domain.com

Ma deuxième question est, je peux aussi personnaliser ce sur les demandes des clients? Comme disons, le client dit ajouter une fonctionnalité à mon compte, vais-je être en mesure de le faire, car il est presque comme un site distinct sur mon site?

Répondre

2

Vous pouvez utiliser la réécriture d'URL par exemple via Apache mod_rewrite pour résoudre ce problème. Pour des raisons de sécurité et de pratique, cependant, je ne recommande pas d'utiliser quelque chose comme username.domain.com à moins de filtrer soigneusement les noms d'utilisateur comme www. Mieux utiliser username.u.domain.com ou quelque chose de similaire.

Voici un exemple de règles de réécriture utilisant la redirection HTTP.

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ 
RewriteCond %{HTTP_HOST} ^([^.]+)\.u\.domain\.com$ 
RewriteRule .* http://domain.com/user/%1 [R,L] 

Sinon, vous pouvez également utiliser un caractère générique DNS/catch-all entrée et extraire le nom d'utilisateur partie avant votre domaine en utilisant une expression régulière, par exemple

function getUserNameFromHost() { 
    if (!preg_match('`^(\w+)\.u\.domain\.com$`', $_SERVER['HTTP_HOST'], $matches)) 
     return false; 
    else 
     return $matches[1]; 
} 
0
+0

Je ne comprends pas. Si vous créez un sous-lien, c'est presque comme si vous aviez un site Web distinct auquel vous pouvez ajouter des fonctionnalités? – AAA

+0

chose est que vous avez tous les outils, vous devez comprendre comment les utiliser au mieux pour votre propre situation. S'il y a des différences physiques dans les fichiers servis sur chaque sous-domaine, vous devrez copier votre ensemble de fichiers de base dans le nouveau répertoire d'utilisateur lorsqu'un utilisateur s'inscrit. Si ces changements sont comme des "paramètres", vous pouvez enregistrer ces variations dans la base de données et faire les ajustements aux pages en fonction des paramètres utilisateur et vous n'aurez pas à créer un répertoire distinct pour chaque utilisateur. –

0

Réécriture d'URL. Utilisez mod_rewrite pour afficher un sous-domaine dans la barre d'adresse, mais récupérez une URL différente en interne.

par exemple: aaa.domain.com devrait aller à domain.com/users/aaa

+0

bien que ma réponse soit exacte, User: Archimedix ci-dessus avec cette réponse: http://stackoverflow.com/questions/3807833/how-to-create-sub-links-for-user-on-sign-up/3807899#3807899 mérite le "chèque", pas celui-ci, pouvez-vous le changer s'il vous plaît? – Stewie

+0

Juste fait pour acrhimedix – AAA

Questions connexes