URI Многоязычный CodeIgniter

Мы используем библиотеку Codeingiter i18n (ссылка на сайт) создать многоязычный сайт.

До этого у нас был, например, www.thedomain.com/register, а регистрация была функцией в нашем контроллере. Теперь, когда мы помещаем эту библиотеку, она берет домен, языковую строку, имя контроллера и имя функции: www.thedomain.com/es/homegf/register (где homegf — наш контроллер).

Мы хотим, чтобы этот URI работал без имени нашего контроллера (www.thdomain.com/es/register), как в примерах библиотеки, но мы думаем, что проблема в нашем маршруте.

Это то, что мы имеем в маршрутах.

<?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]

Вы можете найти наш код для просмотра на https://bitbucket.org/ticketcomunicacion/grinfood/src/17ddde60e340a1f2bc389f54ec579e1e903ee86b?at=multilenguaje

0

Решение

Как я понимаю, вы хотите URL контроллера без имени контроллера.

если вы хотите изменить URL с вашего контроллера имя на другое,

в вашем rout.php напишите следующее

$route['homegf/register'] = "register";

и вы можете получить доступ

domain.com/es/register

0

Другие решения

Проблема была в наших маршрутах.

Вот как нам удалось заставить его работать:

$route['^es/(.+)$'] = "homegf/$1";
$route['^en/(.+)$'] = "homegf/$1";

$route['^es$'] = $route['default_controller'];
$route['^en$'] = $route['default_controller'];

$route['(:any)'] = 'homegf/$1';
0

По вопросам рекламы [email protected]