php - 这个提议的 Router for Vanity-URLs 解决方案有什么问题?

标签 php database url url-routing

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

问题来了: 我目前有看起来像这样的丑陋 URL: http://www.hikingsanfrancisco.com/hiker_community/hiker_public_profile.php?community_member_id=2

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

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

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

最佳答案

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

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

  1. 有一个 .htaccess 文件包罗万象 不存在的文件 请求,并重写到你的 路由器.php
  2. 有你的 router.php 检查这个不存在的路径 在您的数据库中,对照预先计算的个性化名称列表。
  3. 如果存在,显示 相关信息,如不返回 一组 404 header ,表明文件或虚名都不存在。

URL Rewriting Guide

关于php - 这个提议的 Router for Vanity-URLs 解决方案有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4889296/

相关文章:

php - 插入并通过电子邮件发送 PHP 中的所有字段

php - 我们何时何地使用 XMLRPC

database - IN子句+ORDER BY的多列表现

java - 为什么 URL 构造函数不允许相对 URL?

javascript - 使用 JavaScript 高效地添加/删除当前 URL 中的目录

php - 在 MySQL 中限制结果?

php如何使用连字符访问对象属性?

c# - 存储库模式 - 如何结合数据库和内存中的实体?

mysql - 在同一台服务器上导入两个具有相同架构(数据库名称)的不同 mysql 转储文件

node.js - Node js-没有端口号的应用程序