Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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 在Codeigniter中重定向时出错_Php_Codeigniter - Fatal编程技术网

Php 在Codeigniter中重定向时出错

Php 在Codeigniter中重定向时出错,php,codeigniter,Php,Codeigniter,我想在我的url中有我的文章标题,用破折号分隔,我用破折号分隔,这是我的代码: public function post($post_id, $slug = ''){ $data['post'] = $this->posts_model->get_post_by_id($post_id); if ($slug) { $get_title = $data['post']->post_slug; redirect('blog/' .

我想在我的url中有我的文章标题,用破折号分隔,我用破折号分隔,这是我的代码:

 public function post($post_id, $slug = ''){
    $data['post'] = $this->posts_model->get_post_by_id($post_id);
    if ($slug) {
        $get_title = $data['post']->post_slug;
        redirect('blog/' . $post_id . '/' . $get_title);
    }
    $this->load->view('pages/show-post', $data);
}
以下是我的路线:

$route['blog/(:num)'] = 'blog/post/$1';
$route['blog/(:num)/(:any)'] = 'blog/post/$1/$2';
问题:当我加载
example.com/blog/1
时一切正常,但当我加载
example.com/blog/1/anything
时,我的代码成功地将我从数据库重定向到
example.com/blog/1/my slug
但页面加载失败,firefox显示
页面没有正确重定向
错误

我怎样才能解决这个问题?我的代码有问题吗


谢谢你的帮助

您可以访问
example.com/blog/1/anything
,并从数据库中重定向到
example.com/blog/1/my slug
。现在在CI中,您可以使用相同的函数,然后由于
$slug
为true,您将再次从数据库重定向到
example.com/blog/1/my slug
。您有一个重定向循环-这就是导致页面未正确重定向错误的原因


您需要一种方法来停止重定向-就我从您的代码中所看到的,请检查
$slug===$get\u title
,如果是,请不要重定向。但真的很难知道该做什么,因为我不知道你想做什么。

你访问
example.com/blog/1/anything
,并从数据库中重定向到
example.com/blog/1/my slug
。现在在CI中,您可以使用相同的函数,然后由于
$slug
为true,您将再次从数据库重定向到
example.com/blog/1/my slug
。您有一个重定向循环-这就是导致页面未正确重定向错误的原因


您需要一种方法来停止重定向-就我从您的代码中所看到的,请检查
$slug===$get\u title
,如果是,请不要重定向。但是真的很难知道该怎么做,因为我不知道你想做什么。

我想你真正想做的是防止url在没有插入的情况下显示,以提高链接质量和SEO目的。为什么不将代码更改为仅在未提供slug时重定向,即:

更改行:

if ($slug) {

这样代码就不会被困在重定向循环中(正如Ron Dadon所建议的那样),帖子将始终显示在URL中的slug中


我猜不出像你在问题中那样链接到帖子的任何其他原因
example.com/blog/1/anything
-你为什么要在URL中添加
anything
?这可能只是一个slug,对吧?

我想你真正想要的是防止url在没有slug的情况下显示,以提高链接质量并用于SEO目的。为什么不将代码更改为仅在未提供slug时重定向,即:

更改行:

if ($slug) {

这样代码就不会被困在重定向循环中(正如Ron Dadon所建议的那样),帖子将始终显示在URL中的slug中

我猜不出像你在问题中那样链接到帖子的任何其他原因
example.com/blog/1/anything
-你为什么要在URL中添加
anything
?这只可能是鼻涕虫,对吧