codeigniter не может получить значение сегмента $this-›uri-›

Я пытаюсь создать веб-программу 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-адрес можно было обнаружить. Или взять параметры из URL??


person Muji Yanto    schedule 23.10.2014    source источник


Ответы (1)


Я не понимаю, что вы хотите сделать, но было бы неплохо, если бы вы предоставили свой URI

это //сайт/ или //сайт/Фронт??

также удалите эту строку

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

потому что вы уже отправили его как параметр в функцию _remap

Обратите внимание, что если ваш URL-адрес без имени класса и функции, как это: //сайт/

$this->uri->segment(1)

будет равно false, потому что сегмент не существует в URL

person Mhisham    schedule 23.10.2014
comment
Также ознакомьтесь с документацией для класса URL-адресов Codeigniter ellislab.com/codeigniter/user-guide/ библиотеки/uri.html - person Mhisham; 23.10.2014
comment
://site/ == site/Front/ Я переписываю это Спасибо за ваш комментарий, я только что попробовал туториал -› web-and-development.com/, это работает на локальном хосте, но не работает при подключении к сети. - person Muji Yanto; 23.10.2014
comment
Хорошо, попробуйте это и скажите, работает это или нет $this-›uri-›rsegment(1); - person Mhisham; 23.10.2014
comment
404 Страница не найдена Запрошенная вами страница не найдена. Если я введу этот код, верните 404 () - person Muji Yanto; 23.10.2014