【问题标题】:htaccess Friendly Urls Rewritehtaccess 友好的 URL 重写
【发布时间】:2013-10-30 02:32:21
【问题描述】:

如果这是重复的,我深表歉意。我看过这么多线程,但似乎没有一个专门适用于我正在尝试做的事情..出于某种原因,我很难将我的大脑包裹在 .htaccess 重写规则上!

我购买了一个 php 脚本,安装后,我创建了一个新帖子,它运行良好.. 当然,它显示:mydomain.com/post.php?id=7

我想要的是在.com/之后显示帖子的标题

我知道有些人会建议使用帖子 ID 或日期之类的东西,但我真的更希望它按照所述编写。所以最终结果是:mydomain.com/this-is-my-first-post

然后我希望能够正确调用此页面。我假设这一切都将在 index.php 页面(调用 post.php 页面)中完成?

我在 index.php 中找到了当前调用该帖子的行,它看起来像这样:

<a href="post.php?id=<?php echo $theArticle['artId']; ?>"><h1><?php echo $theArticle['title']; ?></h1></a>

这也是我需要更新的吗?

感谢您的帮助。我真的尝试过,但我只是没有编程思想并且非常挣扎!

【问题讨论】:

  • 这太宽泛了,因为它不仅涉及重写 url,而且还准备要在 url 中使用的标题并从数据库中检索正确的信息。您应该分解问题,尝试解决不同的部分,并在此处回复更具体的问题。
  • 如果你的脚本是用数字ID编写的,你可以给它一个字符串标题并期望它工作。
  • 很抱歉。请忽略 php 部分。如果我得到 htaccess 的东西,我会弄清楚的。谢谢!

标签: php .htaccess url rewrite


【解决方案1】:

您的问题有点过于宽泛,但如果您愿意妥协,您可以将网址更改为:

mydomain.com/post/7/the-title-of-post-7

然后你只需要一个重写规则,而不需要更改数据库检索代码。

在这种情况下,重写规则如下所示:

RewriteRule ^post/(\d+).*$ /post.php?id=$1
                  ^^^^^ capture the number to be used

您当然还需要将所有链接重写为所需格式。

【讨论】:

  • 嗨 Jeroen,谢谢.. 我确实按照你的建议让它工作了。除了 php 的东西(对不起,我没有打破这个问题),难道不能只拥有 domain.com/title 吗?我看到像 upworthy 这样的网站可以做到这一点。只是好奇。再次感谢您的帮助!
  • @MarcyStephens 你可以,但你必须为每个帖子和索引生成一个唯一的 slug / url-title。您还必须更改 sql 才能获得正确的帖子。
  • 我继续使用这个解决方案。这是我能得到的最接近的地方,至少那个标题现在在那里。谢谢,杰罗恩!
猜你喜欢
  • 2011-09-25
  • 1970-01-01
  • 2013-05-24
  • 2021-07-06
  • 2015-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
相关资源
最近更新 更多