【问题标题】:How to remove params from url codeigniter如何从 url codeigniter 中删除参数
【发布时间】:2014-09-08 03:53:06
【问题描述】:

我有这样的网址:

http://domain/sentencijos/autoriai/429/marselis-prustas,

其中 sentencijos 是控制器,autoriai 是方法,429(param) 是 marselis prustas ID。我想删除此参数 (ID) 但不知道如何删除。

完整的网址应该是这样的:

http://domain/sentencijos/autoriai/marselis-prustas

有人可以帮助我吗? 谢谢

【问题讨论】:

  • 您应该为此使用routes$route['sentencijos/autoriai/(:any)/(:any)'] = 'sentencijos/autoriai/$2'; 只是一个例子。
  • @Nil'z:这样做会使同一页面的 2 个链接处于活动状态。

标签: codeigniter url url-rewriting seo slug


【解决方案1】:

在您的网址中将slug 替换为id

它是这样工作的:

1) 我在这里假设产品网站流程。
2) 对于特定的产品页面,显示产品详细信息需要来自 URL 的一些数据(可以是任何东西 product idproduct slug 等)。
3) 在 URL 中使用 product ids 不是一个好的做法。它既不是 SEO friendly 也不是 User friendly。下面是使用product id的URL示例,

http://www.example.com/products/123/

4) 因此,一个替代方案是所谓的 product slug
5) slug (semantic URL or Permalinks) 基本上是一个有意义的、seo 友好的、人类可读的关键字序列,由连字符(或下划线)分隔。下面是使用product slug的URL示例,

http://www.example.com/products/apple-iphone-5S-16GB-brand-new/

这里,apple-iphone-5S-16GB-brand-new 是一个蛞蝓。

也可以从这个页面的网址了解,

http://stackoverflow.com/questions/24800780/how-to-remove-params-from-url-codeigniter

在哪里,
24800780 = 这是唯一的question_id
how-to-remove-params-from-url-codeigniter = 这是由您的question 制成的slug


slug怎么用?

1) 当然,您的产品页面需要一些来自 URL 的数据来了解要显示的产品。
2) 在我们使用id 查询我们的数据库之前,我们是从 URL 获取的。但是现在我们将做同样的事情(查询我们的数据库),只需将 id 替换为 slug 就可以了!
3) 因此,在您的数据库中添加一个名为 slug 的附加列。以下是您更新后的产品数据库结构。

id  |  title  |  slug  |  price  |  thumbnail  |  description


在您的代码中:

假设这是您的网址,

http://domain/sentencijos/autoriai/marselis-prustas

这个marselis-prustas 可能是你的slug value,你的控制器函数将接收它并传递给模型,模型逐渐使用它来查询数据库。
为此,您必须创建一个新列(如上所述),其值应为 marselis-prustas 和其他 slugs


在 URL 中使用 slug 的优点:

1) SEO 友好
2) 用户友好
3) 干净和语义化的 URL

【讨论】:

  • 也许有人可以展示如何用 slug 替换 id 的代码示例,从 db 开始?这会更容易。也许我可以复制我的代码?
  • 所以,在数据库中搜索应该来自 slug。如果我想从 id 搜索但在 url 中显示 slug。
  • 所以将 URL 中的 slug 替换为 id 并使用 id 进行查询
猜你喜欢
  • 2012-08-10
  • 2015-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 2012-12-19
  • 1970-01-01
  • 2018-07-19
相关资源
最近更新 更多