对,大家下午好(好吧,现在是英国的下午!)
我正在编写一个使用友好 URL 的 (PHP/MySQL) 站点。
我已经设置了我的 htaccess(启用了 mod_rewrite)并有一个可以处理“/”的基本脚本,然后在“?”之后处理其他所有内容。在同一个脚本中。即我能够确定用户是否尝试放置example.com/about
,example.com/about/the-team
等等example.com/join/?hash=abc123etc
。
我的问题是如何处理可变长度 URL,例如(示例):
example.com/about
(node only)
example.com/about/the-team
(node + seo-page-title)
example.com/projects
(node only)
example.com/projects/project-x
(node + sub-node)
example.com/projects/project-x/specification
(node + sub-node + seo-friendly-title)
example.com/news/article/new-article
(node + sub-node + seo-friendly-title)
example.com/join/?hash=abc123etc&this=that
(节点 + 查询对)
但是,“节点”(第一个参数)、“子节点”(第二个参数)或“seo 友好的页面标题”可能会丢失或未知(数据库控制),因此我无法将处理具体放在 .htaccess 中。请记住:我已经(我认为!)有一个工作 htaccess 可以将所有内容正确转发到我的 PHP 处理脚本。未找到的所有内容都将被转发到 CMS“404”。
我认为我的客户最多会有三个参数(然后其他所有参数都将在“?”之后)。
有没有人尝试过这个或者有一个地方从数据库结构开始或者如何处理我是否已经提出了上述任何一种可能性?
我在以前的项目中尝试过,但总是不得不求助于编写 CMS 来强制用户(在添加页面时)至少拥有一个节点或一个节点 + 子节点 + seo-friendly-title,我想离开从...
我不想要一个脚本,它会通过尝试找到参数的每一种可能性直到找到匹配项来给数据库搜索带来太大压力......或者如果我想实现我所要求的,这是唯一的方法?
非常感谢!