【问题标题】:PHP: Dynamic SEO urls with parent/child relationshipPHP:具有父/子关系的动态 SEO url
【发布时间】:2011-10-21 18:09:12
【问题描述】:

在使用 PHP5 和 MySQL 5 创建要实现友好 URL 的 CMS 时,我一直在努力解决 2 个问题。

基本数据库结构如下:

------------------------------------------- |身份证 |页面名称 |家长 ID | ------------------------------------------- | 1 |第 1 页 | 0 | | 2 |第2页| 0 | | 3 |子页面1 | 1 | | 4 |子子页1 | 3 | -------------------------------------------

然后我想生成如下网址:

ID=1 的页面将具有 URL:/Page1
ID=3 的页面将具有 URL:/Page1/SubPage1
ID=4 的页面将具有 URL:/Page1/SubPage1/SubSubPage1

访问页面时,我有一个 .htaccess 规则将 url 发送到查询字符串,例如:?page=/Page1/SubPage1 等

如何查询数据库以将 URL 与数据库条目进行比较?

【问题讨论】:

标签: php mysql content-management-system seo friendly-url


【解决方案1】:

假设您的路线是/Page1/SubPage1/SubSubPage1,您的查询将是:

SELECT p1.id
    FROM pages AS p1, pages AS p2, pages AS p3
    WHERE p1.PageName = 'SubSubPage1' AND p1.parentID = p2.ID AND
          p2.PageName = 'SubPage1' AND p2.parentID = p3.ID AND
          p3.PageName = 'Page1'

【讨论】:

    【解决方案2】:

    您要比较整个路线还是只选择实际页面的数据?
    如果您只想为实际页面选择数据(URL 中的最后一个 PageName),您只需在 $_GET['page'] 变量上使用 explode(使用 / 作为分隔符)并使用最后一个数组值。
    接下来,您只需将此值插入到您的 sql 查询中(例如 SELECT * FROM pages WHERE PageName = 'yourLastValue'

    【讨论】:

    • 我想比较整个路由,因为如果我只比较最后一个值(这是我目前的解决方案),只要 URL 的最后一部分在数据库。
    猜你喜欢
    • 2017-04-13
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多