【问题标题】:Dynamic routing in codeignitercodeigniter 中的动态路由
【发布时间】:2019-08-24 17:31:20
【问题描述】:

我想将我的网站旧网址转换为新网址,并且 这是我的旧 URL 和路由代码:-

1) www.mysite.com/physics/basics-of-physics 
2) www.mysite.com/physics/what-is-newtons-first-law-in-physics
3) www.mysite.com/chemistry/basics-of-chemistry
4) www.mysite.com/biology/basics-of-biology

以下是我用于上述 URL 的路由代码:-

$route['physics/(:any)'] = "Physics/index/$1";
$route['chemistry/(:any)'] = "Chemistry/index/$1";
$route['biology/(:any)'] = "Biology/index/$1";

这是新的(实际)网址

1) www.mysite.com/basics-of-physics  
2) www.mysite.com/what-is-newtons-first-law-in-physics  
3) www.mysite.com/basics-of-chemistry   
4) www.mysite.com/basics-of-biology  

我在这里使用的简单逻辑是,

1st 和 2nd URL 的数据存储在 tbl_physics 表中,我使用 Physics.php 作为控制器。

3rd URL 数据存储在 tbl_chemistry 表中,我使用 Chemistry.php 作为控制器。

4th URL 数据存储在 tbl_physics 数据库表中,我使用 Biology.php 作为控制器。

这是我尝试过的代码

$route['(:any)'] = "Physics/index/$1";
$route['(:any)'] = "Chemistry/index/$1";
$route['(:any)'] = "Biology/index/$1";

但是所有的 URL 都指向 Biology.php 控制器。 上面的代码我需要做哪些修改?

【问题讨论】:

    标签: php .htaccess codeigniter routing


    【解决方案1】:

    var $route 是一个数组。您已为数组键 '(:any)' 分配了三个不同的值。当然,$route['(:any)'] 的值将是最后分配的值,即"Biology/index/$1"。这就是为什么总是使用Biology 控制器的原因。

    您可以使用正则表达式来定义路由规则。 (See this) 这就是您需要探索的内容,以便为您想到的每个 URL 定义不同的路由。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多