Лично я хотел бы, чтобы приложение выполняло всю необходимую логику маршрутизации, а не полагалось на .htaccess. Вот как я сделал бы это:
Я бы начал с использования предварительно созданного класса/модуля/библиотеки маршрутизатора. Если вы программируете на PHP, используйте что-то вроде Alloy Router. Если вы используете какой-либо фреймворк, маршрутизация может быть уже встроена.
Следующим шагом будет создание маршрута профиля «поймать все», который захватывает все маршруты, которые ранее не были «пойманы». У вас может быть множество других маршрутов, таких как «website.com/about», «website.com/contact» и т. д., которые будут перехвачены первыми, а затем маршрут охвата всех остальных.
Универсальный маршрут направит ваше приложение на «профильный» контроллер. Этот контроллер просматривает заданный маршрут и проверяет, соответствует ли «имя пользователя» в маршруте имени пользователя в вашей базе данных. Если это так, создайте профиль этого конкретного пользователя. Если нет, укажите 404.
Вам нужно убедиться, что все имена пользователей уникальны и не конфликтуют с другими маршрутами (т. е. пользователь не может иметь имя пользователя «о», иначе его URL-адрес будет перехвачен маршрутом «о»).
Наконец, в вашем приложении вам нужно будет сделать так, чтобы все ваши ссылки уходили на правильные URL-адреса. Если у вас есть кнопка «профиль» на верхней панели навигации, вы должны убедиться, что она действительно переходит на «website.com/имя пользователя», где имя пользователя — это фактическое имя пользователя, вошедшего в систему в данный момент. Все ссылки на профили других пользователей будут создаваться динамически, чтобы перейти к правильному URL-адресу, который включает их имена пользователей.
person
mbosecke
schedule
05.03.2012