首页 > 解决方案 > 默认路由中的 CodeIgniter Route 传递参数

问题描述

假设我开发了一个网站 www.example.com,现在我想在域名后面传递一个参数。例如 www.example.com/param。那可能吗?

我的默认路线

标签: .htaccesscodeigniterroutes

解决方案


您可以将参数传递给默认路由,如下所示。

路由.php

$route['default_controller'] = 'pages'; 
$route['about'] = 'pages/about'; 
$route['(.*)'] = 'pages';

您应该$route['(.*)']在代码的最后一行调用,否则如果您在浏览器中键入www.example.com/about About Page URL,它将重定向到default controller方法。

$route['(.*)']:这意味着您可以在 URL 中传递无限的参数

use 可以使用$this->uri->segment()$this->uri->segment_array()收集函数中的参数

示例: 如果您的网址是这样的

www.example.com/param1/param2/param3/param4

public function index(){
    $param1 = $this->uri->segment(1); // return `param1`
    $param2 = $this->uri->segment(2); // return `param2`
    $param3 = $this->uri->segment(3); // return `param3`
    $param4 = $this->uri->segment(4); // return `param4`

    // OR
    $paramArray = $this->uri->segment_array(4); // all parameter in Array format
}

推荐阅读