2011-02-03 79 views
2

我最近发布了一个问题关于我的网站上创建个性化网址,虽然我有很多的答案,我很好奇,想看看发生了什么事我原来的想法:这个提议的Vanity-URL解决方案路由器有什么问题?

这是问题所在: 我现在有丑陋的网址看起来是这样的: http://www.hikingsanfrancisco.com/hiker_community/hiker_public_profile.php?community_member_id=2

我要的是什么高雅这样的: http://www.hikingsanfrancisco.com/alex-genadinik

什么我所提出的解决方案是: 我可以只存储在数据库中的“亚历克斯 - genadinik”(而不是MVC控制器)并取t他查看该人时他虚荣的URL。然后我可以重定向到优雅的域名?

或者重定向是否会增加技术尴尬和僵化程度?也许我根本不需要重定向。我的意思是我会在db中而不是在服务器上查找东西。我认为这是唯一的区别。思考? :)

回答

1

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

如下(类似于WordPress的)我想实现它:

  1. 有一个.htaccess文件捕捞是 要求所有 不存在的文件,并改写你的 router.php
  2. 让你的router.php 检查你的数据库中的这个不存在的路径 ,对照预先计算的虚名的列表。
  3. 如果存在,则显示 相关信息,如果不存在,则返回 一组404头以显示文件或虚荣名称均不存在。

URL Rewriting Guide

+0

你甚至可以使它更友好一点(和更容易制定出要寻找什么了),通过使你陷入网址像`/用户/亚历克斯 - genadinik`,然后有一个` user_router.php`只处理这些请求并知道如何正确显示它们。那么也许一个`events_router.php`来照顾像`/ events/summer-trek-2011`这样的虚荣名称, – Leigh 2011-02-03 17:37:30

1

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

相关问题