【发布时间】:2017-09-16 10:00:19
【问题描述】:
我有一个网址像这样的网站(效果很好)
http://www.page.com/en/controller
但 url 中必须始终包含语言和控制器,否则页面无法加载或没有语言(无文本)。
是否有可能当我输入这样的网址时
http://www.page.com
我被重定向到
http://www.page.com/en/controller
并且控制器会被隐藏?只剩下这个(我的链接需要第一段才能加载特定语言的页面)
http://www.page.com/en
p.s 尝试过路由和重定向,但没有成功
抱歉回复晚了,我不在。
我的路线
$route['default_controller'] = 'arena/display';
$route['(:any)/renginiai'] = "renginiai/getevents";
$route['(:any)/arena'] = "arena/display";
$route['(:any)/paslaugos'] = "paslaugos/displayServices";
$route['(:any)/kontaktai'] = "kontaktai/displayContacts";
$route['(:any)'] = 'pages/view/$1';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
位于核心文件夹中的My_Controller。我从这里加载我的语言库。
/**
*
*/
class MY_Controller extends CI_Controller{
public function __construct()
{
parent::__construct();
$languages = array("lt", "en");
if(in_array($this->uri->segment(1), $languages)){
$this->lang->load($this->uri->segment(1), $this->uri->segment(1));
}
}
}
这是我的首页控制器
<?php
class Arena extends MY_Controller{
public function display($year = NULL, $month = NULL){
/*$this->load->model('Mycal_model');*/
$this->load->model('Image_model');
$data['images'] = $this->Image_model->get_image_data();
$this->load->view('includes/head');
$this->load->view('includes/nav', $data);
$this->load->view('includes/header', $data);
//$this->load->view('includes/calendar', $data);
$this->load->view('includes/section');
$this->load->view('includes/footer');
}
}
【问题讨论】:
-
您的默认控制器是什么?如果语言变量为空,您的行为如何?如果您使用的是 apache,您可以尝试使用 .htaccess
-
向我们展示您的控制器和您的 router.php 设置..
-
这是我想解决的问题之一。当我的语言变量为空时,页面中没有文本,自然我的所有链接都不起作用。因为他们将第一段作为参数以加载相同语言的其他页面。如果这有意义
标签: codeigniter url routes uri