为用户提供网站内容的友好网址当然很好.但是如何最好地做到这一点?像foo.com/users/alice这样的东西有很多优点,最重要的是你不会弄乱根命名空间.但我认为用户的简单性胜过所有这些.许多大型网站似乎都同意(友情,美味和flickr想到),这个问题是关于如何在服务器端实现这一点.
让我们假设alice的真实网址是foo.com/userpage?user=alice,如果有人试图浏览到不存在的用户页面(让我们说foo.com/bob),他们应该访问foo.com/createnew?user=bob .
当然,用户永远不应该看到上面那些丑陋的"真实"网址,只有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命名空间.