【问题标题】:Limit parameters in codeigniter URI限制 codeigniter URI 中的参数
【发布时间】:2017-12-15 11:38:07
【问题描述】:

我遇到了 codeigniter URI 路由问题。

我有这样的路线:

website.local/terms/SOMEINFORMATIONID/SOMECURRENCY

其中 SOMEINFORMATIONIDSOMECURRENCY 是 URI 参数。

问题是,当我调用 website.local/terms/SOMEINFORMATIONID/SOMECURRENCY/SDFSDFSDFSD

所以这意味着,我要引入第三个参数,URI 仍然有效,但我想要的是,当使用超过 2 个参数“执行”路由时,会出现 404 错误。

我试图在 codeigniter 文档中找到一些东西,但我找不到任何东西,反正我不知道我应该寻找什么(codeigniter uri 参数有限等......)。

作为附加信息,我的路由在 routes.php 中如下所示:

$route['terms/(:any)/(:any)'] = 'xxx/terms/$1/$2';

【问题讨论】:

  • 嗨,如果您使用的是 ci3,您可以最后添加一条路由,例如 $ route ['(. +)'] = 'error_page'; // 您之前没有的所有 url 都会显示您想要的错误跨度>
  • 好吧,这是一个很好的解决方案,我认为它更符合我的要求,但我无法将评论标记为有效答案 :( 所以如果你在帖子中发布答案,我'将其标记为“已接受的答案”

标签: php codeigniter


【解决方案1】:

在控制器中: //检查段

$sdf= $this->uri->segment(4);
if ( ! empty($sdf)) $this->my404();

和功能

public function my404 () {

    $this->output->set_status_header('404');
    $data['error'] = 'Not Found...'
    $this->smarty->view( 'error.tpl', $data);
 }

【讨论】:

  • 这也是一种做法。不创建路线
【解决方案2】:

如果你使用的是 ci3,你可以最后再添加一条路由

$ route ['(. +)'] = 'error_page'; // all the url´s that you don't have before will display the error you want

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    相关资源
    最近更新 更多