为用户在您的网站上的内容提供友好的 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 命名空间。