Мне нравится создавать такой URL для моих пользователей, когда они регистрируют имя пользователя mysite.com/username
Я ищу много сообщений на этом сайте, и я вижу, как люди делают это, как это mysite.com/user/username
Я хотел бы избавиться от пользователя и просто перейти непосредственно к mysite.com/username
Какой был бы лучший способ для этого?
Я не знаком с CodeIgniter, но вот общий ответ, почему люди не используют mysite.com/username:
mysite.com/user/username – хорошее решение, потому что обычно диспетчер URL-адресов передает имя пользователя функции / модулю, который обрабатывает страницу пользователя.
mysite.com/username – плохое решение, потому что ваш диспетчер должен будет иметь жадное правило после всех ваших других правил, передать все остальные, что эти предыдущие правила, в модуль / функцию, которая обрабатывает страницу пользователей.
Теперь предположим, что вы хотите использовать mysite.com/username и предположите, что у вас есть mysite.com/logout, который приземляет пользователей на страницу выхода. Пользователь приходит и регистрируется с «logout» в качестве своего имени пользователя. Затем, как вы собираетесь говорить, обратившись к mysite.com/logout, г-н logout хочет выйти или хочет увидеть свою страницу?
Вы можете посмотреть маршруты:
http://codeigniter.com/user_guide/general/routing.html
Вы вводите маршруты в config / routes.php
В качестве примера:
$route['([a-zA-Z]+)'] = "main_controller/user_function/$1";
Но, как сказал @Nylon Smile выше, если вы попытаетесь использовать выход из системы, он попытается получить доступ к пользовательской странице выхода.
Вы можете сделать это, добавив элемент в массив $ route в 'config / routes.php':
$route['([a-zA-Z0-9_-]+)'] = "user/index/$1";
Это отображает example.com/, независимо от функции «index» от «пользовательского» контроллера.
Да, будут конфликты, если у вас есть контроллер «logout» и пользователь с именем «logout». Вы можете решить эту проблему, добавив следующий элемент в массив $ route до вышеперечисленного:
$route['logout'] = "logout";
И сохранение черного списка имен пользователей, которые включают в себя ваши контроллеры. Это потребует некоторого внимания, так что вы можете пойти с другими перечисленными здесь решениями, чтобы префикс в URL был указан как «пользователь /» перед их именем пользователя и избегать всего этого.