Как создать под-ссылки для пользователя при регистрации? - PullRequest
1 голос
/ 28 сентября 2010

Я хочу создать тщеславный URL для моих пользователей. Как мне это сделать?

Я хочу что-то вроде username.domain.com

Мой второй вопрос: могу ли я настроить его по запросу клиента? Как, скажем, Клиент говорит добавить функцию в мою учетную запись, смогу ли я это сделать, поскольку это почти как отдельный сайт на моем сайте?

Ответы [ 3 ]

2 голосов
/ 28 сентября 2010

Вы можете использовать перезапись URL, например, через Apache mod_rewrite , чтобы решить эту проблему.

Однако по соображениям безопасности и практическим соображениям я не рекомендую использовать что-то вроде username.domain.com, если вы тщательно не отфильтруете имена пользователей, например www. Лучше использовать username.u.domain.com или что-то подобное.

Вот пример для переписывания правил с использованием перенаправления HTTP.

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteCond %{HTTP_HOST} ^([^.]+)\.u\.domain\.com$
RewriteRule .* http://domain.com/user/%1 [R,L]

В качестве альтернативы, вы также можете использовать DNS-символ подстановки / catch-all и извлечь часть имени пользователя перед вашим доменом, используя регулярное выражение, например,

function getUserNameFromHost() {
    if ( !preg_match('`^(\w+)\.u\.domain\.com$`', $_SERVER['HTTP_HOST'], $matches) )
        return false;
    else
        return $matches[1];
}
0 голосов
/ 28 сентября 2010

перезапись URL. Используйте mod_rewrite, чтобы отобразить поддомен в адресной строке, но получить другой URL-адрес внутри.

Например: aaa.domain.com должен перейти на domain.com/users/aaa

0 голосов
/ 28 сентября 2010
...