È ovviamente utile fornire agli utenti URL amichevoli per i loro contenuti sul tuo sito. Ma come meglio farlo? Ci sono molti vantaggi in qualcosa come foo.com/users/alice, soprattutto che non stai ingombrando il tuo spazio dei nomi di root. Ma penso che la semplicità per gli utenti sia al di sopra di tutto questo. Molti grandi siti sembrano essere d'accordo (mi viene in mente un messaggio di amicizia, delizioso e flickr) e questa domanda riguarda il modo in cui farlo sul lato server.foo.com/alice vs. foo.com/users/alice
Supponiamo che l'URL vero per alice sia foo.com/userpage?user=alice e che se qualcuno prova a navigare su una pagina utente inesistente (diciamo foo.com/bob) deve raggiungere foo.com/createnew ? user = bob.
L'utente ovviamente non dovrebbe mai vedere i brutti URL "reali" sopra, solo foo.com/alice o foo.com/bob. E si noti che lo spazio dei nomi di root è condiviso. Ad esempio, foo.com/help non deve essere tradotto in foo.com/userpage?user=help.
Presumibilmente sto chiedendo alcune semplici regole mod_rewrite, ma forse c'è un approccio completamente diverso a questo che non sto pensando. In ogni caso, ho pensato che sarebbe stato utile registrare una soluzione definitiva o "best practice" a questa domanda comune.
PS: Sentitevi liberi di commentare i meriti di altre alternative come alice.foo.com o users.foo.com/alice.
PPS: Penso di aver visto questo problema discusso in altre domande, ma sembra essere difficile da cercare. Puntatori benvenuti! Oltre a parole chiave aggiuntive per renderlo più ricercabile, ovviamente. Parole chiave: userspace, spazio dei nomi globale, spazio dei nomi URL.
Spero che funzioni! Ricorda che dovrai codificare una funzione user_exists()! – alex