【问题标题】:How to create a beautiful post links without ID如何在没有 ID 的情况下创建漂亮的帖子链接
【发布时间】:2015-09-07 14:20:01
【问题描述】:

我有一个这样的链接:

 http://localhost/mywebsite/post.php?title=my-post-title&id=2

或者

 http://localhost/mywebsite/post/my-post-title/2/  

(使用 mvc)

但我需要显示没有 ID 的链接,就像 Internet 上的许多网站一样。

例如:

 localhost/mywebsite/post/my-post-title/

【问题讨论】:

  • 如果您已经有了第二个,那么为什么不直接从末尾删除 ID 并让它使用 my-post-title 作为标识符?
  • @MichaelRushton , ID 是标识符。为了安全和美丽,我想成为一个秘密ID。
  • @aldrin27,我自己的php mvc。
  • 如果您希望它是秘密的,请将其从链接中删除并使用 my-post-title 作为标识符。
  • @MichaelRushton,谢谢,my-post-title 作为标识符对性能不坏?在sitepoint.com/guide-url-rewriting/中做guide-url-rewriting是标识符!?

标签: php .htaccess mod-rewrite


【解决方案1】:

您需要使用mod_rewrite 来美化您的网址。查看此链接:http://www.sitepoint.com/guide-url-rewriting/

这是上面的示例mod_rewrite

RewriteEngine on

RewriteRule ^mywebsite/(.*)/(.*)$ mywebsite/post/?title=$2 [QSA]

通过 - How to beautify the URL?

【讨论】:

  • 他想要没有 ID 的链接。您刚刚或多或少地重写了他(可能)用于第二个示例链接的内容。
  • @AndrewLyndem,谢谢。但我想要一个没有 ID 的链接。完全一样:sitepoint.com/guide-url-rewriting/(没有任何 ID)*** 将 RewriteRule ^post/(.*)/(.*)$ post.php?title=$1&id=$2 [QSA] 我的链接从 http://localhost/mywebsite/post.php?title=MyTitle&ID=MyID 转换为 http://localhost/mywebsite/post/MyTitle/MyID *** 事实上,为了安全和美观,我想隐藏 ID。 :-D
  • @MichaelRushton 只是出于好奇,我应该在上面的规则中添加什么来删除 id 部分。我还在学习 mod_rewrite 自己的工作原理,这对我以后真的很有帮助:)
  • ^post/(.*)$ post.php?slug=$1
【解决方案2】:

URL 必须包含唯一标识符。没有它,您的应用程序将无法知道要显示哪个帖子。在这种情况下,您需要为您的帖子创建第二个唯一标识符(除了整数 ID):这称为 slug

因此,除了 idtitle 列之外,还要添加一个带有 UNIQUE 键的 slug 列。此列应该是帖子标题的 URL 安全字符串转换(例如,“这是我的第一篇文章!”的标题可能会给出“this-is-my-first-post”)。如果 slug 已经在使用中,这可能需要附加一个额外的字符(或更多),即如果您有两个标题为“这是一篇文章”的帖子,那么第一个将有 slug “this-is-a-post”第二个会有“this-is-a-post-2”这样的标签。

创建 slug 并将其分配给帖子后,它将用作 URL 中的标识符。使用mod_rewrite,您会将http://localhost/mywebsite/post/my-post-title 重写为http://localhost/mywebsite/post.php?slug=my-post-title,然后在数据库中查询slug = $_GET['slug'] 所在的帖子。

【讨论】:

  • 非常感谢。我认为可以创建一个隐藏的 ID。这是错误的。
猜你喜欢
  • 2010-12-05
  • 2017-02-23
  • 2011-05-03
  • 2013-05-27
  • 2011-05-16
  • 1970-01-01
  • 2015-07-02
  • 2021-08-06
  • 2021-10-01
相关资源
最近更新 更多