我正在与 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 个邮政编码,它还有每个县的纬度和经度,为了生成 map 。
还有另一个数据库,其中为每个城市 ID 列出了多个类别/服务。 (例如:清洁、园艺/景观、害虫防治、房地产等) 然后每个类别下列出了各种业务。
当前显示这些:
website.com/directory/index.php?state=5&city=2292&svc=1
website.com/business/index.php?bid=10
以下是我希望网址显示的方式:
website.com/directory/california/long-beach/gardening/
website.com/directory/california/long-beach/gardening/joes-lawn-service/
或
website.com/business/joes-lawn-service/
我非常感谢任何帮助解决这个问题的人。我查看了很多选项,但没有找到任何讨论和演示使用数据库收集信息的选项。
最佳答案
我认为这就是您正在寻找的: .htaccess routing php (similar question)
它基本上捕获使用该路径的所有请求,并让配置的 php 文件负责处理(您必须实现)。
问题所要求的模式通常用于实现 Web API,这就是为什么我也很好奇实际的解决方案是什么。与解决方案中关于 QSA 标志的建议相反,我会保留它。
另一个链接:What does $1 [QSA,L] mean in my .htaccess file?应该为您指明理解 .htaccess 文件中的指令的正确方向。
注意:我想说的是,我不认为所有提出的问题都需要像某些问题的评论中所述的代码,只要它们的表述正确即可。有时我们知道一个概念,但不知道如何在我们不熟悉的开发环境中实现它。
关于php - 创建数据库驱动的永久链接(干净的网址),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17606583/