Donc, pour une application Web multi-utilisateurs, quoi de mieux:
http://username.domain.com
Ou
http://domain.com/username
Je voudrais obtenir des commentaires sur la sécurité, l’évolutivité et la maintenance en particulier, l’application est basée sur php, elle est donc basée sur .htaccess pour la réécriture d’URL.
Comme pour toute question de haut niveau telle que celle-ci, la réponse dépendra largement de vos besoins.
La première question que je devrais poser cependant (car cela n’a pas été précisé dans votre question) est de savoir pourquoi vous préoccupez-vous d’un sous-domaine ou d’un sous-dossier? S'agira-t-il d'URL "vanity"? Si ce n'est pas le cas et que vous ne diffusez que du contenu basé sur la connexion d'un utilisateur, vous n'aurez alors besoin que de votre URL de base (aucun dossier ni sous-domaine n'est nécessaire). Une fois que vous aurez authentifié un utilisateur, vous saurez qui il est et ce à quoi il devrait avoir accès. Vous pourrez ainsi diffuser du contenu en fonction de son identifiant.
Si vous souhaitez utiliser ceci pour des URL personnalisées, voici quelques avantages/inconvénients pour chacun:
Sous-dossiers
sous-domaines
Au bout du compte, tout dépend de vos besoins. J'ai seulement énuméré quelques points à garder à l'esprit avec l'une ou l'autre option. Si vous souhaitez préciser votre question de manière plus précise, je pense que vous obtiendrez probablement quelques réponses plus précises.
L'utilisation de dossiers est définitivement, certainement, nettement plus facile à gérer et beaucoup plus évolutive.
Pour les sous-domaines, vous devez créer une nouvelle instance de serveur pour chacun. Avec les dossiers, vous créez simplement un nouveau dossier.
Les sous-domaines gagnent en sécurité, mais si le contenu du profil est géré, vous devriez utiliser des dossiers.
S'il s'agit d'un domaine sur lequel les utilisateurs ont un contrôle total, utilisez des sous-domaines.
Les cookies s'appliquent aux domaines et seront donc partagés si vous utilisiez des dossiers mais avec des sous-domaines susceptibles de s'appliquer à l'ensemble du domaine ou à des sous-domaines individuels.
Si vous hébergez du contenu généré par l'utilisateur, vous devez éviter les attaques XSS.