Apache URLのリライトとワイルドカードのサブドメイン処理

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

どうすればこのことができますか? 事前に感謝し、私の貧しい英語のために申し訳ありません:)

0
@Qchmpqsあなたが存在するかどうかを確認できるようにPHPスクリプトに情報を提供できるようにURL書き換えにワイルドカードを使用するためです。
追加された 著者 Dan,
私はあなたの質問のタイトルと非質問の関係が何であるか分かりません
追加された 著者 Qchmqs,

2 答え

これはあなたの探しているものかもしれません?

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]");
}
?>
3
追加された
上記を少し変更しましたが、domain.comを自分のドメインに変更することを忘れないでください。また、ワイルドカードを追加する必要があります。
追加された 著者 Dan,
もう一度変わった、運は?
追加された 著者 Dan,
([a-zA-Z9-0 -_] +)0と9が間違った方法である可能性があります。([a-zA-Z0-9 -_] +)
追加された 著者 Dan,
あなたの素早い答えに感謝します。 .htaccessファイルを更新しましたが、内部サーバーエラーが発生しています。
追加された 著者 Szőke Péter,
それでもまだエラーが発生しています。私は、Apacheのログをチェックし、それは最初のルールの問題をhase。
追加された 著者 Szőke Péter,
まだ動作していません。 RewriteRule:正規表現 '^ user /([a-zA-Z9-0 -_] +)/ $'をコンパイルできません。これは正確なエラーです。
追加された 著者 Szőke Péter,
これはどちらもうまくいかないようです.../userにディレクトリがあってもuser.php?username = $ 1に書き直されます
追加された 著者 Szőke Péter,
今はエラーはありません。問題は、それが存在しないドメインをuser.phpにリダイレクトしないということです?username = $ 1
追加された 著者 Szőke Péter,

最初に、 "このドメインはまだ登録されていません。blabla"というメッセージを持つ既定のページを作成します。このregistration.htmlを呼び出してください

私はあなたが登録されたドメインを格納しているデータベースを持っていると仮定しています。

example.domain.comが登録されているかどうかを確認するためにデータベースを検索します。

if(example.domain.com registered)
http_redirect (domain.com/users/example/);
else  
http_redirect (registration.html);
1
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com