2011-12-18 24 views
0

私はPHPの初心者です。ユーザが登録してサブドメインを取得できるWebアプリケーションを作成しています。私はすでに登録部分をやったことがあるが、私は理解できないもう一つのことをしたい。 したがって、ユーザーがexample.domain.comを参照すると、ユーザー 'example'がすでに登録されている場合、domain.com/users/example/からページを取得する必要がありますが、ユーザー名が取得されない場合は、「このドメインは登録されていませんまだblabla "Apache URLの書き換えとワイルドカードサブドメインの処理

どうすればいいですか? あらかじめありがとうございました。私の貧しい英語には申し訳ありません:)

+2

私はあなたの質問 – Qchmqs

+0

@Qchmpsのタイトルと非質問の関係は何ですか?あなたが存在するかどうかを確認できるようにPHPスクリプトに情報を提供できるようにURL書き換えにワイルドカードを使用するためです。 – Dan

答えて

3

これはあなたの探しているものでしょうか?

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

あなたの素早い答えに感謝します。 .htaccessファイルを更新しましたが、内部サーバーエラーが発生しています。 –

+0

私は上記をわずかに変更しました。domain.comを自分のドメインに変更することを忘れないでください。また、ワイルドカードを追加する必要があります。 – Dan

+0

それでもエラーは発生しています。私は、Apacheのログをチェックし、それは最初のルールの問題をhase。 –

-1

最初に、「このドメインはまだ登録されていません。blabla」というメッセージが表示されているデフォルトページを作成します。このregistration.htmlを電話する

登録されたドメインを格納しているデータベースがあるとします。

example.domain.comが登録されているかどうかを調べるデータベース。

if(example.domain.com registered) 
http_redirect (domain.com/users/example/); 
else 
http_redirect (registration.html); 
関連する問題