ユーザー向けにバニティURLを作成したいと考えています。どうすればいいですか?
username.domain.comのようなものが欲しい
私の2番目の質問は、クライアントの要求に応じてこれをカスタマイズすることもできますか?たとえば、クライアントが私のアカウントに機能を追加すると言った場合、それは私のサイト内の別のサイトのようなものなので、それを実行できますか?
ユーザー向けにバニティURLを作成したいと考えています。どうすればいいですか?
username.domain.comのようなものが欲しい
私の2番目の質問は、クライアントの要求に応じてこれをカスタマイズすることもできますか?たとえば、クライアントが私のアカウントに機能を追加すると言った場合、それは私のサイト内の別のサイトのようなものなので、それを実行できますか?
これを解決するには、たとえば Apache のmod_rewriteを介して URL 書き換えを使用できます。
ただし、セキュリティと実用的な理由から、 のような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];
}
あなたはこれを見ることができます:
URL書き換え。mod_rewrite を使用してアドレス バーにサブドメインを表示しますが、内部では別の URL を取得します。
例: aaa.domain.com は domain.com/users/aaa に移動する必要があります