Как переписать URL, удалив имя контроллера в codeigniter

У меня есть такие URL-адреса:

samplesite.com/aboutus [о нас отвечает]

Samplesite.com/contactus [Контакт является контролером]

Также у меня есть зарегистрированные участники, которые отображаются как

samplesite.com/memberaccount/32 [memberaccount является контроллером, а 32 — Memberid]

Я также переписал приведенные выше URL-адреса, чтобы участники отображались как

Samplesite.com/memberaccount/john [джон является участником с идентификатором участника 32]

Чего я хочу добиться, так это:

http://www.samplesite.com/john (это вызывает проблему, так как конфликтует с именами контроллеров aboutus, contactus и т. д. и позвольте мне сказать вам, что у меня есть от 40 до 50 таких контроллеров.Пожалуйста, кто-нибудь может предложить, как мне это получить.


person Php Mysql    schedule 14.09.2013    source источник
comment
Вам нужно опубликовать свои маршруты.php. Вам может показаться сложным добиться этого с помощью маршрутизации codeigniters, поскольку вам нужно будет создать маршрут перехвата всего, чтобы перенаправить что-либо на ваш контроллер участников. Это должно быть размещено в нижней части вашего route.php. Возможно, будет лучше переписать URL-адрес, чтобы удалить сегмент учетной записи участника в вашем .htaccess   -  person Jeemusu    schedule 14.09.2013


Ответы (1)


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

$route['aboutus'] = "any controller is map to that name";

samplesite.com/aboutus [о нас отвечает за управление]

$route['memberaccount/(:num)'] = "any controller is map to that name/$1";

Samplesite.com/memberaccount/32

если все еще не получается, попробуйте указанную выше ссылку http://ellislab.com/codeigniter/user-guide/general/routing.html

person saurabh kamble    schedule 14.09.2013
comment
$route['(:any)'] = Memberaccount/$1; это работает для меня ... поэтому, когда я захожу на samplesite.com/john, он сопоставляется с samplesite.com/memberaccount/john ... но возникает проблема, когда я пытаюсь перейти на мою страницу о нас. например, samplesite.com/aboutus .. он рассматривает aboutus как одного из участников сайта. и пытается сопоставить его с samplesite.com/memberaccount/aboutus, и именно этого я точно хочу избежать ... есть ли теперь способ, с помощью которого я могу заставить маршруты игнорировать файлы контроллера. Другим обходным решением было бы перечислить все контроллеры как $route['aboutus'] = aboutus; и т.д.. У меня есть 60 файлов контроллеров - person Php Mysql; 14.09.2013