URL-адрес Codeigniter - PullRequest
       0

URL-адрес Codeigniter

3 голосов
/ 09 июня 2011

Можно ли как-нибудь создать пользовательские URL?что-то вроде

www.domain.com / username

Я знаю, что мне, вероятно, придется использовать систему маршрутизации, и я часто использую это для других запросов URL.Но дело в том, что мне нужно имя пользователя для динамического создания профиля пользователя, если он существует.Но мне также нужно помнить о других моих классах контроллеров?

Спасибо!

1 Ответ

3 голосов
/ 09 июня 2011

Я вижу, вы понимаете, что пользователь может перешагнуть через все ваши другие действительные маршруты, создав соответствующее имя пользователя.

Вы можете попробовать перенаправить все запросы как имена пользователей, но предоставив триггер для других ваших контроллеров.(и другие действительные маршруты):

// Route everything to users profile
$route['(:any)'] = 'users/profile/$1';

// Route all requests after "my_trigger" as normal
$route['my_trigger/(:any)'] = '$1';

* Я не уверен, но вам может необходимо добавить еще /(:any) смаршруты запуска.

Это будет означать, что my_trigger должно быть недопустимым именем пользователя, но будет только недопустимым именем пользователя.

Идея состоит в том, что всем запросам, не относящимся к имени пользователя, должен предшествовать дополнительный «триггерный» сегмент, в противном случае он будет считаться именем пользователя.Таким образом, /blog теперь должен быть доступен с помощью /trigger/blog.

Вы можете, конечно, сделать то же самое с именем пользователя, но в итоге получить менее симпатичный URL-адрес, такой как /u/username, или использовать запросстрока типа ?u=username.

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

В любом случае, если имя пользователя на самом деле не существует - вам нужно реагировать соответствующим образом, поэтому нет реальной необходимости в «динамических» маршрутах (т.е. создании маршрута для каждого пользователя).

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