Перезапись URL в Apache и обработка поддомена - PullRequest
0 голосов
/ 19 декабря 2011

Я новичок в PHP и создаю веб-приложение, в котором пользователи могут зарегистрироваться и получить поддомен.Я уже прошел регистрационную часть, но я хочу сделать еще одну вещь, которую я не могу понять.Поэтому, когда пользователь переходит на example.domain.com, если пользователь 'example' уже зарегистрирован, он должен получить страницу с domain.com/users/example/, но если имя пользователя не занято, ему следует написать «Этот домен еще не зарегистрирован.. blabla "

Как я мог это сделать?заранее спасибо, и извините за мой плохой английский:)

Ответы [ 2 ]

3 голосов
/ 19 декабря 2011

Это может быть то, что вы ищете?

RewriteEngine On
RewriteBase /   

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$ [NC]
RewriteRule ^$ /users/%1/ [L]

RewriteRule ^user/([a-zA-Z0-9-_]+)/$ user.php?username=$1 [L]

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

Вы также должны добавить подстановочный комментарий в файл httpd.conf для домена, чтобы он поддерживал подстановочные поддомены:

ServerAlias domain.com www.domain.com
ServerAlias *.domain.com

User.php будет что-то вроде:

<?
if(mysql_num_rows(mysql_query("SELECT id FROM db WHERE username = 'mysql_real_escape_string($_GET[username])'") > 0)
{
    echo "User Exists";
}
else
{
    header("Location: /register.php?username=$_GET[username]");
}
?>
0 голосов
/ 19 декабря 2011

Сначала создайте страницу по умолчанию с сообщением «Этот домен еще не зарегистрирован. Blabla».Позвоните по адресу registration.html

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

Поищите базу данных, чтобы узнать, зарегистрирован ли example.domain.com.

if(example.domain.com registered)
http_redirect (domain.com/users/example/);
else  
http_redirect (registration.html);
...