【问题标题】:Best way to handle SEO URLs with PHP使用 PHP 处理 SEO URL 的最佳方法
【发布时间】:2011-10-21 19:17:55
【问题描述】:

我有一个名为 books.php 的 PHP 文件,我想通过 htaccess 和 PHP 使用 SEO URL。

我想为以下格式创建规则:
books.php?bookid=X(可选:books.php?bookid=X&page=Y
books.php?categoryid=X(可选:books.php?categoryid=X&page=Y
books.php?do=search&query=X
@ 987654326@

可通过以下方式访问:
/books/book/{booktitle}
/books/category/{categorytitle}
/books/search/{search_string}
/books/tags/{tagtext}

我想知道的是这样做的主要思想。
谢谢!

【问题讨论】:

    标签: php seo


    【解决方案1】:

    我发现这样做更容易:

    /books/book/9834/{title}
    

    其中数字是数据库ID,纯文本标题只是被PHP扔掉了。它不是那么干净,但是如果您尝试将标题传递给 SQL 查询 IMO,则会出现太多涉及唯一性的问题。

    在此处查看mod-rewrite generator 以获取构建规则的帮助。

    【讨论】:

    • 这就是 stackoverflow 所做的事情......它通常是最好的解决方案之一
    • 我明白了,我会考虑的,谢谢。如果我使用 PHP 来做呢?做对了就不可能吗?
    • 另外,您提出的解决方案有点问题。它必须是 /books/book/9834/{title} 否则可能会出现问题(如果还有一个具有相同 id 和标题的类别)。
    • 您可以使用任何后端语言...大部分工作由 mod_rewrite 完成
    • @Chris Sobolewski 所以如果我选择只使用标题,没有 id,我应该怎么做? explode('/', $_SERVER['REQUEST_URI']),然后从数据库中获取与数组的第三个键匹配的行?就这样?
    【解决方案2】:

    这里的关键部分实际上发生在 PHP 之外。您想告诉您的网络服务器,您实际上希望 /books/foo/bar 以 foo 和 bar 作为参数来调用 books.php,而不是仅仅查找具有给定名称的文件或目录。如果您使用的是 Apache,请查看以下内容:htaccess mod_rewrite

    设置完成后,我建议将所有旧的 bo​​oks.php URL 重定向到新的“SEO URL”等价物。最佳做法是为每个页面设置一个有效的 URL。

    【讨论】:

      【解决方案3】:

      使用micro-frameworkfull-blown framework 怎么样?

      这是他们解决的这类问题,因此您可以专注于构建应用程序而不是构建工具。

      【讨论】:

        猜你喜欢
        • 2021-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多