Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否可以用不同的url显示相同的页面?_Php_Codeigniter_Url - Fatal编程技术网

Php 是否可以用不同的url显示相同的页面?

Php 是否可以用不同的url显示相同的页面?,php,codeigniter,url,Php,Codeigniter,Url,我想为不同的URL显示相同的内容。例如: website.com/controllername/country/state1/dist1/ website.com/controllername/country/state2/dist2/ 我希望这两个URL显示相同的内容。即使某些内容会因URL而异(如州和地区名称)。我不想为每个URL创建单独的内容/页面。我想知道是否有可能在Codeigniter中这样做?是否可以在Codeigniter中显示上述URL?与其他框架不同,Codeigniter

我想为不同的URL显示相同的内容。例如:

website.com/controllername/country/state1/dist1/
website.com/controllername/country/state2/dist2/

我希望这两个URL显示相同的内容。即使某些内容会因URL而异(如州和地区名称)。我不想为每个URL创建单独的内容/页面。我想知道是否有可能在Codeigniter中这样做?是否可以在Codeigniter中显示上述URL?

与其他框架不同,Codeigniter没有全局模板系统。每个控制器独立于系统控制自己的输出,除非另有规定,否则视图为FIFO

例如,如果我们有一个全局标头:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" >
<html>
    <head>
        <title><?=$title?></title>
        <!-- Javascript -->
        <?=$javascript ?>
        <!-- Stylesheets -->
        <?=$css ?>
    </head>
    <body>
        <div id="header">
            <!-- Logos, menus, etc... -->
        </div>
        <div id="content">

是的,您可以在路由上使用不同的url设置设置相同的页面。 有关更多信息,请参阅以下链接:

$route['controllername/country/state1/dist1/']=“目录/产品查找”;
$route['controllername/country/state1/dist2/']=“目录/产品查找”

是的,使用Codeigniter路由是可能的

应用程序/config/routes.php
中,粘贴以下代码并更改所使用的控制器和函数名


$route['([a-zA-Z0-9----u%])+/([a-zA-Z0-9----u%])+/([a-zA-Z0-9----u%])]='your_controller_name/your_function_name/$1/$1'

改进克里希纳拉的答案

你需要 website.com/controllername/method1/st/dist/ website.com/controllername/method2/st/dist/

//为了更好地理解,我改变了一些变量,“国家”将 //这是主要的变化

所以在你的控制器上你只需要

public function method1($st1,$st2){ 
     $this->load->view('header');

     $this->load->model('data_processing');
     $data['data'] = $this->data_processing->any_model_function($st1,$st2);

     $this->load->view('page_you_want',$data);
     //here you choose the same view for both methods

     $this->load->view('footer');
}

public function method2($st1,$st2){ 
     $this->load->view('header');

     $this->load->model('data_processing');
     $data['data'] = $this->data_processing->any_model_function($st1,$st2);

     $this->load->view('page_you_want',$data); 
     //here you choose the same view

     $this->load->view('footer');
}
在Kavin Smk解释的路线配置中,注意到的只是一个错误,而不是

'your_controller_name/your_function_name/$1/$1/$1';
应该是

'your_controller_name/your_function_name/$1/$2/$3';
嗯,总是有很多方法可以做到这一点,选择你的。。。
祝你好运

我猜你想要相同的
视图
文件,有两个不同的
路径
是的,应该是这样,这就是这种URL模式的全部要点。这完全取决于设置路由规则等。我相信您可以在文档中对此进行研究。在此路由中,所有具有2个参数的页面都可以访问相同的页面。这不是个好办法。
'your_controller_name/your_function_name/$1/$1/$1';
'your_controller_name/your_function_name/$1/$2/$3';