2014-10-07 2 views
0

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

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

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

Это то, что мы имеем в 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] 

Вы можете найти наш код, чтобы рассмотреть его на https://bitbucket.org/ticketcomunicacion/grinfood/src/17ddde60e340a1f2bc389f54ec579e1e903ee86b?at=multilenguaje

+0

Так что, если вы не получите перенаправлены туда, где вы хотите, где ты в конечном итоге? –

+0

Содержание, которое я нашел в www.thedomain.com/es/homegf/register, я хочу на www.thedomain.com/es/register, я хочу исчезнуть homegf – codiaf

ответ

0

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

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

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

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

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

, как я понимаю , вам нужен адрес контроллера без имени контроллера.

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

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

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

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

domain.com/ es/register

+0

Сайт динамический, существует множество функций, таких как register (validate, forget_password, new_order ...) план не должен писать каждый ... istead с использованием регулярного выражения или что-то – codiaf

+0

попытаться добавить RewriteRule^(. *) $/homegf/$ 1 [L] на htaccess –

+0

да, я пробовал, но не работает, я думаю, что-то в route.php, потому что www.thdomain.com/es/register показать 404 страницу с ошибкой (не найдено) – codiaf

Смежные вопросы