もちろん、サイトのコンテンツにわかりやすい URL をユーザーに提供するのはよいことです。しかし、それを行う最善の方法は何ですか?foo.com/users/alice のようなものには多くの利点がありますが、最も重要なのは、ルート名前空間を乱雑にしないことです。しかし、ユーザーにとってのシンプルさがすべてに勝ると思います。多くの大規模サイトは同意しているようです (friendfeed、delicious、flickr が思い浮かびます)。この質問は、サーバー側でそれを実現する方法に関するものです。
alice の実際の URL が foo.com/userpage?user=alice であり、誰かが存在しないユーザー ページ (たとえば foo.com/bob) にアクセスしようとすると、foo.com/createnew?user=bob に到達する必要があるとします。 .
もちろん、ユーザーは上記の醜い「実際の」URL を見るべきではありません。foo.com/alice または foo.com/bob だけです。また、ルート名前空間が共有されていることに注意してください。たとえば、foo.com/help は foo.com/userpage?user=help に変換されるべきではありません。
おそらく私はいくつかの単純な mod_rewrite ルールを求めていますが、おそらく私が考えていない、これとはまったく異なるアプローチがあるでしょう。いずれにせよ、この一般的な質問に対する決定的な解決策または「ベスト プラクティス」の解決策を記録するのは良いことだと思いました。
PS: alice.foo.com や users.foo.com/alice など、他の代替案のメリットについて自由にコメントしてください。
PPS: この問題が他の質問で議論されているのを見たことがあると思いますが、検索するのは難しいようです。ポインタ歓迎!もちろん、これをより検索しやすくするための追加のキーワードも同様です。キーワード: ユーザー空間、グローバル名前空間、URL 名前空間。