这个提出的虚荣网址路由器解决方案有什么问题?

时间:2011-02-03 17:13:28

标签: php database url url-routing

我最近发布了一个关于在我的网站上创建虚荣网址的问题,虽然我得到了很多很好的答案,但我很想知道我原来的想法出了什么问题:

问题在于: 我目前有丑陋的网址,如下所示: http://www.hikingsanfrancisco.com/hiker_community/hiker_public_profile.php?community_member_id=2

我想要的是这样的优雅: http://www.hikingsanfrancisco.com/alex-genadinik

我建议的解决方案是: 我可以将“alex-genadinik”存储在数据库(而不是MVC控制器)中,并在查找此人时获取虚荣URL。然后我可以重定向到优雅的域名?

或者重定向是否会增加技术难度和不灵活性?也许我根本不需要重定向。我的意思是我会在数据库而不是服务器中查找内容。我认为这是唯一的区别。思考? :)

2 个答案:

答案 0 :(得分:1)

Drupal实际上做了类似的事情,所有的URL别名都存储在数据库中。你可以随心所欲地做到这一点!我会想到你将拥有URL的不同类型的“东西”以及如何区分它们,当用户请求URL时你将如何进行查找,如何进行反向查找以从实体生成链接,如果你需要它们,如何处理参数(即/ vanity-url?sortby = blah)。

答案 1 :(得分:1)

您提出的解决方案没有任何问题。事实上,可以将WordPress配置为完成此操作。

我会按如下方式实现它(类似于WordPress):

  1. 让.htaccess文件全部捕获 不存在的文件 要求,并重写你的 router.php
  2. 有你的router.php 检查这条不存在的路径 在您的数据库中,与预先计算的虚荣名称列表相对应。
  3. 如果存在,请显示 相关信息,如果不归还 一组404标题,表示文件或虚名都不存在。
  4. URL Rewriting Guide