Codeigniter:如何在url中传递隐藏参数并使它们可用于解析

时间:2012-08-27 09:40:16

标签: .htaccess mod-rewrite codeigniter-2 codeigniter-url codeigniter-routing

我有一个这样的网址:

  

www.domain.com/catalog/category_name/category_id/product_name/product_id

示例:

  

www.domain.com/catalog/notebook/93/4_cpu_quad_core/56

并希望它变成:

  

www.domain.com/catalog/category_name/product_name /

示例:

  

www.domain.com/catalog/notebook/4_cpu_quad_core

必须将两个ID参数传递给应用程序并使用PHP进行解析,因为我需要它来获取正确的类别和产品。

我尝试了几种使用。htaccessroute.php配置的方法,但没有成功!

有人可以用简单的方式解释如何将这些参数传递给网络服务器,同时将这些参数隐藏在网址中吗?

我只是想知道是否可以在url中传递隐藏的参数并使它们在后端应用程序中可用(即java或php)。

2 个答案:

答案 0 :(得分:0)

  

有人可以用简单的方式解释如何将这些参数传递给网络服务器,同时将这些参数隐藏在网址中吗?

无法“隐藏”部分请求。你可以删除它们,但是你的应用程序根本不会看到它们。例如,您可以使所有网址看起来像www.domain.com/catalog/category_name/product_name/,但您的PHP脚本不会看到任何ID,因为它们已经消失了。

答案 1 :(得分:0)

嘛!我在文件system / core / uri.php

中写了一个函数
function assing_segment($num,$value)
{
    $this->segments[$num]   =   $value;
    return $this->segments[$n];
}

在视图或控制器中调用此函数

$this->uri->assing_segment(5,$myvalue);

这会将第5段重新分配给我的值