【问题标题】:Efficient way to realize permalinks in php在php中实现永久链接的有效方法
【发布时间】:2009-08-12 09:06:23
【问题描述】:

实现php驱动的永久链接最有效的方法是什么?

基本上我想将数据库访问减少到最低限度。

重定向到存储在数据库中的 id 的最佳方法是什么?

【问题讨论】:

    标签: php database url rewrite title


    【解决方案1】:

    您可以像 SO 一样使用基于 db ID 的网址:

    http://stackoverflow.com/questions/1265061/efficient-way-to-realize-permalinks-in-php
    

    http://stackoverflow.com/questions/1265061
    

    两人去同一个地方。

    这通常是通过某种 mod_rewrite 从 .htaccess 重定向到您的 php 文件来完成的。

    RewriteRule ^/questions/([0-9]+)/?.*$ /questions.php?id=$1
    

    重写规则会丢弃 ID 之后的所有内容 - 因此您甚至可以转到

    http://stackoverflow.com/questions/1265061/not-the-questions-title-anymore
    

    你仍然到达目的地。当您在 php 中生成链接时,您需要将“标题 slugs”添加到被“链接”的实际 URL - 这将提高您的搜索引擎友好性...

    【讨论】:

    • 你拿走了我键盘上的文字;)!我可以补充一点,第一个版本对 SEO 更友好!
    • @gnarf:是的,看起来不错。我会试试你的建议。
    • @wookai - 应您的要求添加了关于搜索引擎友好性的提及;)
    • 除了“not-the-questions-title-anymore”会导致重复的 URL。您应该使用 ID 或“slug”,而不是两者。除非你能保证唯一性。
    • @DisgruntledGoat 如果您担心那些重复的 URL,如果您检测到 slug 不正确,您可以随时使用 301 重定向
    【解决方案2】:

    使用简单的 URL-to-ID 映射来根据 URL 检索 ID:

    +----------+----+
    | URL path | ID |
    +----------+----+
    | /foo     | 1  |
    | /bar     | 2  |
    | /bar/baz | 3  |
    | …        | …  |
    +----------+----+
    

    【讨论】:

    • 我认为在我的问题中包含了这种方法,而不是对我有帮助的真正好的答案。不过谢谢。
    • @ChrisBenyamin:那你到底想知道什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 2012-05-13
    • 2012-01-30
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多