2010-09-27 3 views
1

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

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

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

ответ

2

Вы можете использовать URL переписывания, например, через Apache's 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 подстановочные/уловам все записи и извлекать имя пользователя часть до вашего домена с помощью регулярного выражения, например,

function getUserNameFromHost() { 
    if (!preg_match('`^(\w+)\.u\.domain\.com$`', $_SERVER['HTTP_HOST'], $matches)) 
     return false; 
    else 
     return $matches[1]; 
} 
0

Вы можете посмотреть на это:

How to create sub.domain for user opon sign up

+0

Я не понимаю. Если вы создаете sub.link, это почти похоже на отдельный сайт, на который вы можете добавить функции? – AAA

+0

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

0

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

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

+0

хотя мой ответ прав, Пользователь: Archimedix выше с этим ответом: http://stackoverflow.com/questions/3807833/how-to-create-sub-links-for-user-on-sign-up/3807899#3807899 заслуживает «чек», а не этот, можете ли вы его изменить? – Stewie

+0

Просто сделал это для acrhimedix – AAA