【发布时间】: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