我们正在使用Codeingiter库i18n(link)来创建多语言网站。
在此之前,我们有www.thedomain.com/register,寄存器是我们控制器中的一个功能。现在,当我们放置这个库时,它会抓取域,语言字符串,控制器的名称和函数名称:www.thedomain.com/es/homegf/register(其中homegf是我们的控制器)。
我们希望这个URI在没有控制器名称的情况下工作(www.thdomain.com/es/register),就像在图书馆的例子中一样,但我们认为问题出在我们的路线上.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]
找到我们的代码进行审核
答案 0 :(得分:0)
据我所知,您需要没有控制器名称的控制器网址。
如果要将控制器名称中的URL更改为其他名称,
你的routes.php中的写下面的
$route['homegf/register'] = "register";
您可以访问
domain.com/es/register
答案 1 :(得分:0)
问题出在我们的路线上。
这就是我们设法使其发挥作用的方式:
$route['^es/(.+)$'] = "homegf/$1";
$route['^en/(.+)$'] = "homegf/$1";
$route['^es$'] = $route['default_controller'];
$route['^en$'] = $route['default_controller'];
$route['(:any)'] = 'homegf/$1';