Создание короткого URL для нескольких контроллеров? - PullRequest
0 голосов
/ 27 ноября 2011

Для моего текущего проекта в codeignitor мне нужно было создать такой профиль пользователя:

http://domain.com/userid

Затем я попытался добавить это в router.php

$route['(:any)'] = 'profile/user/$1';

, который работает нормально.Теперь я хочу сделать еще один URL для языка, подобного этому

http://domain.com/es
http://domain.com/fr

Поскольку оба URL-сегмента являются первыми, когда я набираю

 http://domain.com/es

, я вижу страницу

 http://domain.com/userid

Я использую файл .htaccess для удаления index.php в codeignitor.Есть ли какая-нибудь помощь, как я могу выполнить эту задачу в создании URL для нескольких контроллеров.Либо с .htaccess или router.php?

1 Ответ

1 голос
/ 27 ноября 2011

Поскольку система маршрутов работает сверху вниз, если у вас есть несколько правил, которые могут соответствовать URL, она выбирает первое.Таким образом, вы могли бы сделать:

$route['(es|fr|en)'] = 'language/$1';
$route['(:any)'] = 'profile/user/$1';

Если первое правило соответствует, оно запускается, в противном случае оно проверяет правило профиля.
Вы обязательно продолжите сталкиваться с проблемами, хотя с этим правилом профиля, и это будетпроще, если вы сделали что-то вроде:

$route['users/(:any)'] = 'profile/user/$1';

Таким образом, было бы более понятно, что делает URL, и это поможет вам, когда вы будете писать правила в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...