【问题标题】:How do I create permalinks that are database driven?如何创建数据库驱动的永久链接?
【发布时间】:2011-06-28 10:26:29
【问题描述】:

我正在寻找翻译方法

http://www.mysite.com/articles.php?id=1

进入

http://www.mysite.com/articles/name_of_article_from_field_in_database_with_id_1

我可以使用 Mod Rewrite 执行某种 RewriteRule,但我不确定如何准确执行。我的页面是用 PHP 编码的,从 MySQL 数据库中提取。

希望有人能告诉我如何做到这一点!

我知道还有其他人在寻找类似的答案。

再次感谢!

NCoder

【问题讨论】:

标签: php mysql database permalinks


【解决方案1】:

您将需要在您的网络服务器配置中使用重写规则来翻译,例如/123/index.php?id=123 - 这本身不是 PHP 问题。

【讨论】:

  • 我听说过一点点重写,但从未做过。这样做的最佳方法是什么,以便从我的数据库中的附加字段中提取它重写的内容?谢谢!
  • yitznewton 是对的。这是一个关于如何使用 .htaccess 文件的好教程:zenverse.net/seo-friendly-urls-with-htaccess
  • @NCoder:你的意思是一个蛞蝓:http://example.org/some-article 将转换为/index.php?slug=some-article,然后你的应用程序将在数据库中查找“some-article”?如果是这样,您需要在表中添加一个 slug 列(比如说article.slug),并在提交新文章时创建该 slug。然后,为了检索,您查询 article.slug 以获取提供的值。
  • 嗯,我不确定我到底需要什么。我有一个页面example.org/index.php?id=1 可以从我的数据库中提取一条新闻记录,然后example.org/index.php?id=2 可以提取一条不同的新闻文章。我只是在寻找更好的 SEO 并且看起来很明智的东西。因此,您的智慧/建议值得赞赏!
  • @NCoder 在 httpd.conf 中:RewriteRule ^(.*)$ index.php?slug=$1 [L,QSA] 然后pastebin.com/mdLr5td2
【解决方案2】:

以下所有内容都可以通过 apache 重写来实现。您可以找到大量有关如何执行此操作的教程和文档。

为了使永久链接看起来漂亮且对 SEO 友好,您可以按照 example.com/article/how-to-do-stuff 模式作为标题为“如何做事”的文章的链接。但是,如果您的网站将获得很多文章,那么由于数据库中的文本搜索,事情会稍微变慢(这将很难达到,但我们假设一下)。

因此,我建议使用 phpBB 模式 example.com/article/12345-how-to-do-stuff,其中 12345 是数据库中模式的 ID(或任何其他足够快的 ID,可以选择来自分贝)。那不是全部。 “应该”还有一个验证步骤,将 URL 中的文本与所选文章的标题进行比较,最终重定向到正确的 URL。

【讨论】:

    猜你喜欢
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 2010-09-22
    相关资源
    最近更新 更多