【问题标题】:Create database driven permalinks (clean url)创建数据库驱动的永久链接(干净的 url)
【发布时间】:2013-07-10 12:06:21
【问题描述】:

我正在与 Cities & States 合作创建一个目录 - 该网站已经运行了好几年 - 但我一直想让网址变得干净。

我已经看到这样做了(尤其是通过 wordpress)

这是当前网址的样子:

website.com/directory/index.php?state=5
加州目录

website.com/directory/index.php?state=5&city=2292
加利福尼亚长滩目录

这是我希望网址的外观:
website.com/directory/california/
website.com/directory/california/long-beach

我的主数据库包含 51 个州的 ID 号,包括哥伦比亚特区(带有州缩写和全州名称)和 1,847 个不同的县,有 29,640 个不同的城市 ID 号和 41,580 个邮政编码,每个州都有纬度和经度,为了生成地图。

还有另一个数据库,其中列出了每个城市 ID 的多个类别/服务。 (例如:清洁、园艺/景观、害虫防治、房地产等) 然后在每个类别下列出了各种业务。

这些当前显示:
website.com/directory/index.php?state=5&city=2292&svc=1
website.com/business/index.php ?bid=10

以下是我希望 URL 出现的方式:
website.com/directory/california/long-beach/gardening/
website.com/directory/california/long-beach/gardening/joes-lawn-service/


website.com/business/joes-lawn-service/

我非常感谢任何帮助解决这个问题。我查看了许多选项,但没有找到任何讨论和演示使用数据库收集信息的选项。

【问题讨论】:

  • 要求代码的问题必须表明对正在解决的问题有最低限度的了解。包括尝试的解决方案、它们为什么不起作用以及预期结果。另见:Stack Overflow question checklist
  • @Danny - 感谢您的回复 - 但是,我不确定您的要求是什么?我搜索了代码,我发现了htaccess:RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]但这并没有解决如何在index.php文件上编写代码来转换信息。
  • 他可能想说的是:“到目前为止,您尝试了什么?”
  • 顺便说一句:forum.codecall.net/topic/74170-clean-urls-with-php 这有帮助吗?自己没试过,但看起来很有希望
  • @PatrickManser - 是的,这就是我所审查的,但它没有解决使用数据库检索信息的问题。我还查看了 [链接] (cutcodedown.com/tutorials/friendlyURL),作者指出可以从数据库中获取信息,但未提供详细信息。 - 我试图弄清楚使用什么编码来完成这个。我知道如何使用 php 编写代码以使用查询访问数据库,但我想从地址栏中隐藏这些查询。

标签: php mysql database .htaccess


【解决方案1】:

我认为这就是您要寻找的: .htaccess routing php (similar question)

它基本上是使用该路径捕获所有请求,并让配置的 php 文件负责处理(您必须实现)。

问题要求的模式通常用于实现 Web API,这就是为什么我也对实际解决方案感到好奇的原因。与解决方案中关于 QSA 标志的建议相反,我会保留它。

此其他链接:What does $1 [QSA,L] mean in my .htaccess file? 应该为您指明正确的方向,以了解 .htaccess 文件中的指令。

注意:我想声明,只要正确表述,我认为并非所有提出的问题都需要 cmets 中某些人对问题所述的代码。有时我们知道一个概念,但不知道应该如何在我们不熟悉的开发环境中实现它。

【讨论】:

    猜你喜欢
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多