Personnellement, je voudrais que l'application effectue toute la logique de routage nécessaire au lieu de se fier à .htaccess. C'est ainsi que I le ferait:
Je commencerais par utiliser une classe/module/bibliothèque de routeur pré-construite. Si vous codez en PHP, utilisez quelque chose comme Alloy Router. Si vous utilisez une structure quelconque, le routage peut déjà être intégré.
L'étape suivante consisterait à créer une route de profil «attrape-tout» qui attrape toutes les routes qui n'ont pas été précédemment «interceptées». Vous pourriez avoir un tas d'autres routes telles que "website.com/about", "website.com/contact", etc, qui seront attrapées en premier, puis la route fourre-tout obtiendra tous les autres.
L'itinéraire fourre-tout acheminera votre application vers un contrôleur "profil". Ce contrôleur regarde l'itinéraire donné et vérifie si le "nom d'utilisateur" dans la route correspond à un nom d'utilisateur dans votre base de données. Si c'est le cas, créez le profil de cet utilisateur particulier. Si non, fournissez un 404.
Vous devrez vous assurer que tous les noms d'utilisateur sont uniques et qu'ils ne sont pas en conflit avec d'autres routes (par exemple un utilisateur ne peut pas avoir le nom d'utilisateur "à propos" sinon son URL sera prise par la route "à propos"). Enfin, au sein de votre application, vous devrez faire en sorte que tous vos liens soient redirigés vers les bonnes URLs. Si vous avez un bouton "profil" dans une barre de navigation supérieure, vous devez vous assurer qu'il est bien sur "website.com/username" où nom d'utilisateur est le nom d'utilisateur de l'utilisateur actuellement connecté. Tous les liens vers les profils d'autres utilisateurs seront créés dynamiquement pour accéder à l'URL correcte qui inclut leurs noms d'utilisateur.
Vous obtiendrez de meilleures réponses si vous marquez votre question avec la langue/technologie que vous utilisez. Votre question mentionne à la fois PHP et web.config (un concept .NET) qui prête à confusion. – Jason