Как все перевести на контроллер по умолчанию в codeigniter? - PullRequest
0 голосов
/ 19 февраля 2012

У меня есть веб-сайт http://example.com, созданный с использованием codeigniter 2. контроллер по умолчанию -

$route['default_controller'] = "domain";

Если я пытаюсь получить доступ к pageX, ссылка должна быть http://example.com/en/domain/view/pageX.
Я хочу разрешить посетителю веб-сайта доступ к этой странице, набрав

http://example.com/pageX

Я пытался

$route['(:any)'] = "view/$1"; ==> it gives 404 Page Not Found
$route['(:any)'] = "domain/view/$1"; ==> it redirects to homepage with link shown as http://example.com/en/pageX
$route['(:any)'] = "en/domain/view/$1"; ==> it gives 404 Page Not Found

но ни один из них не работал для меня.

EDIT

добавив это:

$route['(:any)'] = 'domain/view/$1';  
$route['en/blog']   =  'domain/view/blog';

example.com/blog будет работать нормально но мне нужно, чтобы он был более общим, чтобы охватить все страницы, кроме страницы администратора, что-то вроде этого:

$route['(:any)'] = 'domain/view/$1';  
$route['^(?!admin).*']   =  'domain/view/$o';
//The above routes will show the home page only for whatever i try!!

Какой маршрут я должен добавить к routes.php?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2012

Я справился со своей проблемой, сделав это

$route['^[a-z]+$'] = 'domain/view/$1';
$route['([a-z]{2})/([a-z_]{1,50})'] = 'domain/view/$2';
0 голосов
/ 20 февраля 2012

$route['default_controller'] вызывается, если отсутствует URI. Используйте $route['404_override'] для полного "поймать все".

Чтобы ваш шаблон маршрутизации работал, попробуйте это:

$route['[^/]*/(.*)'] = 'en/domain/view/$1';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...