2011-12-20 47 views
2

我已經建立了自己的域,將所有的通配符子域指向我的網絡服務器。我想要做的是根據我在wildcardsubdomain上收到的值執行重寫url。PHP中的子域rewriteurl

這是一個特定的情況,我不知道如何結束。

username.mydomain.com改寫到mydomain.com/user.php?userid=username

&

groupname.mydomain.com改寫到mydomain.com/group.php?groupid=groupname

我在我的數據庫存儲在一個表中的類型如下。

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

這會有助於實現這個編程?我怎樣才能使用rewriteURL實現這一目標?

而且我也想,直到 用戶無論從user.phpgroup.php

回答

1

請嘗試以下導航到另一個頁面保持頁面的URL的作爲是:

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。

然後,您可以使用javscript格式化的網址:

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'; 
    } 
}