codeigniter 中的友好 url 以及 url 中的变量

发布于 2024-11-05 23:01:30 字数 567 浏览 1 评论 0原文

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

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

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

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

I'm making a site using Codeigniter and my URL for a particular product page is like http://www.domain.com/products/display/$category_id/$product_id/$offset

$offset is used for limiting the number of pages shown per page when using the Codeigniter's Pagination library.

How I want to make it such that my URL is something more human friendly, like http://www.domain.com/$category_name/$product_name/$offset ie. http://www.domain.com/weapons/proton-canon/3

Can anyone point me the general approach? I just started learning codeigniter and is working on my first project

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

别在捏我脸啦 2024-11-12 23:01:30

您可以使用通常所说的 URL slug 来实现此目的。

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

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

例如,我的产品名称 将变为my_product_name

现在,在您的方法中,您可以 - 保持 product_id 不变,使用它作为方法的参数来显示特定产品,并使用 slug 来实现人类友好的链接,或者您可以只使用url_slug 引用产品。

您的网址可能类似于:

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

,也可能类似于

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

没有 ID。选择是你的,但 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 路由了解更多信息

You can use what's generally known as a URL slug to achieve this.

Add a new field to your table, called "url_slug" or similar. Now you will need to create a slug for each product, and store it in this field.

CI has a function in the URL helper - url_title($string) which will take a string, and convert it for use in URL's.

For example My product name would become my_product_name.

Now, in your method, you can either - keep the product_id intact, use this as a parameter for your method to show specific products, and use the slug for human friendly links, or you can just use the url_slug to refer to products.

Your URL may look like:

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

or it could look like

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

with no ID. the choice is yours, but the url_slug may change - the ID won't. Which may have SEO impacts.

Regardless, your method needs to look something like:

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

You can then use URL's like the above.

You will need to use URI routing as well, as the example above will attempt to look for a controller called $category_name and a method called my_cool_product, which will of course not exist.

See URI Routing for further info.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文