Пользовательский URL для каждого пользователя в PHP

Возможно ли иметь веб-сайт, на котором каждый пользователь получает свой собственный URL-адрес, например: www.thewebsite.com/myusername

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

Поэтому, если я зайду на www.thewebsite.com/phil и зарегистрируюсь как Дэвид, мой сайт станет www.thewebsite.com/david, но имя Фила будет отслеживаться в моей пользовательской записи. (т.е. есть ли способ узнать, по какому URL-адресу они посетили сайт)

Итак, на самом деле это 2 вопроса:

1) Как создать настраиваемые URL-адреса для каждого пользователя 2) Как узнать, с какого URL-адреса зашел новый пользователь

Я довольно новичок в PHP, так что имейте это в виду.


person James P. Wright    schedule 15.10.2009    source источник
comment
Am дал отличный ответ ниже, только я понял, что это может быть не тот ответ, который я ищу. Я хочу, чтобы мой URL-адрес был www.domain.com/user, когда кто-то отправляет эту ссылку по электронной почте, но когда дело доходит до моего сайта, там нет каталога www.domain.com/user. Моя система распознала бы этот каталог как имя пользователя и продолжила бы оттуда. По сути, я хочу, чтобы любой действительный пользователь мог выдать ссылку, указывающую на www.domain.com/MYUSER без того, чтобы этот физический каталог существовал на моем сайте. Это возможно?   -  person James P. Wright    schedule 16.10.2009


Ответы (1)


Вы можете реализовать это с помощью apache mod_rewrite.

Создайте правило перезаписи для чего-то вроде:

^/users/($1)    /users.php?userid=$1

В файле user.php прочитайте параметр userid и верните страницу, соответствующую данному пользователю.

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

person Amirshk    schedule 15.10.2009
comment
Можно ли это сделать без доступа к mod_rewrite? Что касается mod_rewrite, я предполагаю, что URL-адрес просто отображается пользователю как /users/myuser, но по-прежнему отображается в моей программе как /users.php?userid=myuser Это правильно? - person James P. Wright; 15.10.2009
comment
Что касается mod_rewrite, я предполагаю, что URL-адрес просто отображается пользователю как /users/myuser, но по-прежнему отображается в моей программе как /users.php?userid=myuser Это правильно? Да все верно. - person lemon; 15.10.2009