Как создать URL-адрес профиля пользователя для веб-сайта?

Моя проблема в том, что я хотел бы, чтобы у моих пользователей был собственный URL-адрес http://mywebsite.com/username.

Я читал о .htaccess file, но я работаю в GoDaddy, поэтому считаю, что мне нужно что-то делать с web.config file.

Проблема в том, что в настоящее время URL-адрес моего профиля пользователя не отображается, а PHP-код специфичен для любого пользователя. Он просто говорит http://mywebsite.com/profile для каждого пользователя (сайт все еще находится в тестовом режиме, поэтому ни один из пользователи реальны прямо сейчас).

Как заставить переписать URL-адрес, если URL-адрес профиля в настоящее время не отображает какую-либо конкретную информацию о пользователе, такую ​​​​как user?id=3 или что-то еще? И как мне хотя бы получить текущий профиль для получения конкретной информации о пользователе?


person Jo Anne    schedule 05.03.2012    source источник
comment
Вы получите лучшие ответы, если пометите свой вопрос языком/технологией, которую используете. В вашем вопросе упоминаются как PHP, так и web.config (концепция .NET), что сбивает с толку.   -  person Jason    schedule 05.03.2012


Ответы (1)


Лично я хотел бы, чтобы приложение выполняло всю необходимую логику маршрутизации, а не полагалось на .htaccess. Вот как я сделал бы это:

Я бы начал с использования предварительно созданного класса/модуля/библиотеки маршрутизатора. Если вы программируете на PHP, используйте что-то вроде Alloy Router. Если вы используете какой-либо фреймворк, маршрутизация может быть уже встроена.

Следующим шагом будет создание маршрута профиля «поймать все», который захватывает все маршруты, которые ранее не были «пойманы». У вас может быть множество других маршрутов, таких как «website.com/about», «website.com/contact» и т. д., которые будут перехвачены первыми, а затем маршрут охвата всех остальных.

Универсальный маршрут направит ваше приложение на «профильный» контроллер. Этот контроллер просматривает заданный маршрут и проверяет, соответствует ли «имя пользователя» в маршруте имени пользователя в вашей базе данных. Если это так, создайте профиль этого конкретного пользователя. Если нет, укажите 404.

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

Наконец, в вашем приложении вам нужно будет сделать так, чтобы все ваши ссылки уходили на правильные URL-адреса. Если у вас есть кнопка «профиль» на верхней панели навигации, вы должны убедиться, что она действительно переходит на «website.com/имя пользователя», где имя пользователя — это фактическое имя пользователя, вошедшего в систему в данный момент. Все ссылки на профили других пользователей будут создаваться динамически, чтобы перейти к правильному URL-адресу, который включает их имена пользователей.

person mbosecke    schedule 05.03.2012
comment
Вау, спасибо за ответ. Я не упомянул, что я новичок в php, поэтому все, что вы только что сказали, немного выше моего понимания. Я думаю, мне нужно, чтобы кто-то посмотрел мой код, чтобы увидеть, можно ли сделать то, что вы сказали. Спасибо - person Jo Anne; 06.03.2012