【问题标题】:Writing rules in routes.php for Codeigniter在 routes.php 中为 Codeigniter 编写规则
【发布时间】:2016-05-27 15:06:09
【问题描述】:

我需要有关 routes.php 的帮助

我有 2 种类型的 URL,例如 - https://www.seekmi.com/service/jakarta/digital-marketinghttps://www.seekmi.com/en/service/jakarta/digital-marketing

对于那些我在 routes.php 中使用与 - 相同的控制器编写的 2 条规则 -

$route['en/service/(:any)/(:any)'] = "findservice/search/$1/$2";
$route['service/(:any)/(:any)'] = "findservice/search/$1/$2";

但只有第一个 URL 有效,第二个无效。 谁能帮我解决这个问题?

【问题讨论】:

  • 您的代码看起来不错。检查您的 .htaccess 文件。可能会给您带来一些问题。
  • 第二个不起作用是什么意思? 404?还是指向错误的控制器?
  • 如果service/(:any)/(:any) 与我认为您不需要定义两倍的路线设置相同。
  • @matiit,我认为它认为“en”是不存在的控制器。这是因为规则没有像规则 1 那样申请 url。
  • @Yash 我需要该页面应该可以通过两个 url 访问。 'en/' 只是为了 SEO 目的而添加的语言翻译。

标签: php codeigniter routes


【解决方案1】:

试试这个

$route['service/(:any)/(:any)'] = "findservice/search/$1/$2";
$route['en/service/(:any)/(:any)'] = "findservice/search/$1/$2";

【讨论】:

  • $route['en/service/(:any)'] = "findservice/search/$1/$2"; $route['service/(:any)'] = "findservice/search/$1/$2";
【解决方案2】:

链接没问题,但路由映射的主要方面是您在设置中指定的控制器和函数名称。如果它们不存在,您将收到 404 错误。

所以你需要在控制器中创建一个findservice Controller和一个方法search来接受两个参数。

//save as findservice.php in application/controller/ folder

class Findservice extends CI_Controller{
   public function __construct(){
      parent::__construct();
   }
   public function search($param1,$param2){
      //use $param1 and $param2
   }
   .....
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    相关资源
    最近更新 更多