2011-12-20 3 views
2

すべてのワイルドカードサブドメインをWebサーバーにポイントするようにドメインを設定しました。私がしたいのは、ワイルドカードサブドメインで受け取った値に基づいて書き換えURLを実行することです。PHPのサブドメインリライトURL

これは、どのように過ぎ去るのかわからない特定のシナリオです。私は以下のようにテーブルの上に私のデシベルに種類を格納していますmydomain.com/group.php?groupid=groupname

に書き換えることmydomain.com/user.php?userid=username

&

groupname.mydomain.comに書き換える

username.mydomain.com

john->userid 
technology->groupid 
steve->userid 
Macleen->userid 
Sports->groupid 

これはプログラム的に達成するのに役立つでしょうか? rewriteURLを使用してこれを達成するにはどうすればよいですか? user.phpまたはgroup.phpのいずれかから

そして ユーザーが別のページに移動するまでであるように私はまた、URLのページのを維持したいと思います

答えて

1

は、以下のことを試してみてください。

RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC] 
RewriteCond %{HTTP_HOST} !^mydomain\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^([^\.]+)\.mydomain\.com$ [NC] 
RewriteRule ^$ file.php?id=%1 [L] 

あなたはそれがユーザー名かグループ名かどうかを調べるためにfile.phpに何らかのidチェックを入れることができます。両方を組み合わせてユニークなidがあれば動作しますが、random.mydoを分離する方法はないのでrandom.mydomain.comのmain.com。

history.pushState({path: "url"}, "", "http://random.mydomain.com/user"); 
1

のindex.php:

<?php 
if(preg_match('/([a-z]+).mydomain.com/i', $_SERVER['SERVER_NAME'], $matches)){ 
    $subdomain = $matches[1]; 
    if(YourModel::isGroupName($subdomain)){ 
    $_GET['groupid'] = $subdomain; 
    require './group.php'; 
    } else { 
    $_GET['userid'] = $subdomain; 
    require './user.php'; 
    } 
} 

その後、URLをフォーマットするjavscript使用することができます