URI多语言CodeIgniter
问题描述:
我们使用Codeingiter库i18n(link)创建多语言网站。URI多语言CodeIgniter
在此之前,我们有例如www.thedomain.com/register和register是我们控制器中的一个函数。现在,当我们放置这个库时,它会抓取域,语言字符串,控制器名称和函数名称:www.thedomain.com/es/homegf/register(其中homegf是我们的控制器)。
我们希望这个URI在没有我们的控制器名称的情况下工作(www.thdomain.com/es/register),就像在图书馆的例子中一样,但我们认为这个问题在我们的routes.php中。
这是我们在routes.php文件
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
$route['default_controller'] = "homegf";
$route['404_override'] = '';
$route['^(en|es|de)/(.+)$'] = "$2";
$route['^(en|es|de)$'] = $route['default_controller'];
这是我们的.htaccess
RewriteEngine on
RewriteCond $1 !^(index\.php|files|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
答
问题出在我们的路线上。
这就是我们如何设法使其工作:
$route['^es/(.+)$'] = "homegf/$1";
$route['^en/(.+)$'] = "homegf/$1";
$route['^es$'] = $route['default_controller'];
$route['^en$'] = $route['default_controller'];
$route['(:any)'] = 'homegf/$1';
答
按照我的理解找到我们的代码审查,你想要没有控制器名称的控制器url。如果你要的网址从您的控制器名称到其他改变
,
在routes.php文件写入以下
$route['homegf/register'] = "register";
,您可以访问
domain.com/ es/register
所以,如果你没有得到重新路由到您想要的,你在哪里结束? – 2014-10-07 22:36:32
我在www.thedomain.com/es/homegf/register找到的内容,我想要www.thedomain.com/es/register,我想消失homegf – codiaf 2014-10-07 22:47:47