codeigniter 中的友好 url,带有 url 中的变量

Posted

技术标签:

【中文标题】codeigniter 中的友好 url,带有 url 中的变量【英文标题】:friendly url in codeigniter with variables in url 【发布时间】:2011-08-21 05:01:09 【问题描述】:

我正在使用 Codeigniter 创建一个网站,我的特定产品页面的 URL 类似于 http://www.domain.com/products/display/$category_id/$product_id/$offset

$offset 用于限制使用 Codeigniter 的分页库时每页显示的页数。

我希望如何使我的 URL 更加人性化,例如 http://www.domain.com/$category_name/$product_name/$offset 即。 http://www.domain.com/weapons/proton-canon/3

谁能指出我的一般方法?我刚开始学习 codeigniter,正在做我的第一个项目

【问题讨论】:

【参考方案1】:

您可以使用通常称为 URL slug 的方法来实现此目的。

在您的表中添加一个名为“url_slug”或类似名称的新字段。现在您需要为每个产品创建一个 slug,并将其存储在此字段中。

CI 在 URL 帮助器中有一个函数 - url_title($string),它将接受一个字符串,并将其转换为在 URL 中使用。

例如,My product name 将变为 my_product_name

现在,在您的方法中,您可以 - 保持 product_id 不变,将其用作您的方法的参数以显示特定产品,并将 slug 用于人类友好的链接,或者您可以只使用 @987654326 @ 表示产品。

您的网址可能如下所示:

www.domain.com/$category_name/$product_id/my_cool_product/$offset

或者看起来像

www.domain.com/$category_name/my_cool_product/$offset

没有身份证。选择权在你,但 url_slug 可能会改变 - ID 不会。这可能会对 SEO 产生影响。

无论如何,您的方法需要看起来像:

function display_product($product_id, $url_slug, $offset) 
   // do what you gotta do...

然后您就可以使用上述 URL。

您还需要使用 URI 路由,因为上面的示例将尝试查找一个名为 $category_name 的控制器和一个名为 my_cool_product 的方法,这当然不存在。

见URI Routing for further info。

【讨论】:

以上是关于codeigniter 中的友好 url,带有 url 中的变量的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 codeigniter 创建 seo 友好的 url?

使用 Codeigniter 重定向 SEO 友好的 url?

codeigniter 的 seo 友好 url

Codeigniter - SEO 友好的 URL 结构(Slug 实现)

带有 java 脚本的 MVC 中的用户友好 URL

在 ASP.NET 中使用带有友好 URL 的 Response.Redirect