【问题标题】:codeigniter cannot get $this->uri->segment Valuecodeigniter 无法获取 $this->uri->segment 值
【发布时间】:2014-12-18 21:30:41
【问题描述】:

我正在尝试创建一个基于 Web 的 Codeigniter,但我在我的网站上线时发现了问题

这是我的 .htaccess 文件

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

这是我的配置:

$config['uri_protocol'] = 'PATH_INFO';

这是我的 Routes.php

$default_controller = "Front";
$controller_exceptions = array('owner');

$route['default_controller'] = $default_controller;
$route["^((?!\b".implode('\b|\b', $controller_exceptions)."\b).*)$"] = $default_controller.'/$1';
$route['404_override'] = '';

这是我的控制器类:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Front extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
    }

    public function _remap($segment_1)
    {       
    $segment_1 = $this->uri->segment(1);
    switch ($segment_1)
     {
        case null:
        case false:
        case '':
        $this->load->library('Facebook_ion_auth');
        if (isset($_GET['code']))
            {
            $this->facebook_ion_auth->login();
            if (!$this->ion_auth->logged_in()){
                $this->index();
            }else{
                $succses='Selamat datang! <b>'.$this->ion_auth->user()->row()->user_display_name.'</b>';
                $content = new Content();
                $content->profil($succses,'');
            }
        }else{

            $url =  $this->uri->segment_array();
            print_r($url);
        }

        break;

        case 'category':
            $this->category();
        break;

        case 'search':
            $content = new Content();
            $content->search();
        break;  

        case 'pesan':
            $content = new Content();
            $content->pesan();
        break;

        case 'daftar':
            $content = new Content();
            $content->daftar();
        break;

        case 'login':
            $content = new Content();
            $content->login();
        break;

        case 'keluar':
            $content = new Content();
            $content->keluar();
        break;

        case 'profil':
            $content = new Content();
            $content->profil();
        break;

        case 'kirimpesan':
            $content = new Content();
            $content->kirimpesan();
        break;

        case 'contact':
            $content = new Content();
            $content->contact();
        break;

        case 'testimoni':
            $content = new Content();
            $content->testimoni();
        break;

        case 'facebook':
            $this->load->library('Facebook_ion_auth');
            $this->facebook_ion_auth->login();
        break;

        case 'img':
            $this->img();
        break;

        default:
        $content = new Content();
        $content->sigle();
        break;
        }
    }                                                                                                       

    public function index()
    {
        $content = new Content();
        $content->home();
    }
}

但是一直运行case = "",这证明$segment_1 = $this->uri->segment(1);检测不到.或者没有来自 uri 1 的数据。

$url = $this->uri->segment_array(); 
print_r($url); 

显示 DISPLAY EMPTY 如何修复,可以检测到订单网址。还是从 URL 中获取参数??

【问题讨论】:

    标签: .htaccess codeigniter url routes remap


    【解决方案1】:

    我不明白你想做什么 但如果你提供你的 URI 会很好

    是 ://site/ 还是 ://site/Front ??

    也删除这一行

    $segment_1 = $this->uri->segment(1);
    

    因为你已经在 _remap 函数中将它作为参数发送了

    请注意,如果您的 url 没有类名和功能像这样 ://site/

    $this->uri->segment(1)
    

    将等于 false,因为 url 中不存在段

    【讨论】:

    • 同时查看 Codeigniter URL Class ellislab.com/codeigniter/user-guide/libraries/uri.html的文档
    • ://site/ == site/Front/ 我重写了这个谢谢你的评论,我只是在这里尝试了教程-> web-and-development.com/…,这适用于本地主机,但放置时不起作用在线
    • 好的,试试这个,告诉我它是否有效 $this->uri->rsegment(1);
    • 404 Page Not Found 找不到您请求的页面。如果我把这个代码返回 404()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多