我正在尝试确定在性能和可操作性方面永久转发大量 URL 的最佳方法。到目前为止,我能想到的可能方法有 3 种:
- .htaccess 重写规则
- PHP 标头函数在数组中查找匹配的 URL
- PHP 标头函数查找 MySql 数据库
这不是要转发整个域名,而是只转发域名的一些 URL。例如,当产品名称从某物到还要别的吗:
www.example.com/something > www.example.com/anything_else
而 URL 类似www.example.com/totally_differnt保持不变。
答案1
如果您追求可管理性和性能之间的最佳平衡,我建议采用两步流程(我们对 HTTP 路由配置使用相同的流程):
- URL 存在于数据库中,便于维护
- 脚本(bash、PHP 等)从数据库和模板创建一个 PHP 脚本,定义一个数组,以原始路径为键,以新路径为值,然后查找请求的文档路径,如果找到则重定向到新路径,如果没有则显示 404。如果数据库发生变化,则运行此“脚本创建脚本”
- 生成的脚本用作 404 后备
如果您使用 HHVM 或操作码缓存,速度会非常快:代码本身已经准备好了,需要做的就是哈希表查找。