2012-12-14 30 views
4

目前,我有一個網址系統,這樣使用htaccess的:與htaccess的動態子域(不定向)

- www.domain.com/member/username 
- www.domain.com/member/username/contact 
- www.domain.com/member/user/album/title-of-the-album/albumID 

..類似的東西

這裏是我的htaccess的,它完美地工作。

RewriteRule ^member/([a-zA-Z0-9_-]+)$ member.php?username=$1 
RewriteRule ^member/([a-zA-Z0-9_-]+)/contact$ contact.php?username=$1 
RewriteRule ^member/([a-zA-Z0-9_-]+)/album/([a-zA-Z0-9_-]+)/([0-9]+)$ album.php?username=$1&title=$2&album_id=$3 

現在我想建立一個動態的子域名系統,對於用戶來說,喜歡「username.domain.com」 所以我決定用下面的htaccess的:

RewriteCond %{HTTP_HOST} !^www\.domain\.com 
RewriteCond %{HTTP_HOST} ([^.]+)\.domain\.com [NC] 
RewriteRule ^(.*)$ www.domain.com/member/%1 [L] 

但是,這將用戶重定向到他們的舊域名「www.domain.com/member/username」,而不是「www.domain.com/member/username」 我想保持用戶留在「username.domain.com」(沒有URL更改地址欄)。

如果可能的話,有沒有可能保持相同的結構等新的URL,這樣當我輸入爲:

  • 「username.domain.com/contact」將載入「WWW的內容。 「domain.com/member/username/contact」(地址欄中沒有網址變化)
  • 「username.domain.com/album/title-of-the-album/albumID」將加載「www.domain .com /會員/用戶名/相冊/標題的相冊/ albumID「(地址欄中沒有網址變化)

請幫忙!!

回答

4

嘗試:

RewriteCond %{HTTP_HOST} !^www\.domain\.com 
RewriteCond %{HTTP_HOST} ([^.]+)\.domain\.com [NC] 
RewriteRule ^/?$ /member.php?username=%1 [L] 

RewriteCond %{HTTP_HOST} !^www\.domain\.com 
RewriteCond %{HTTP_HOST} ([^.]+)\.domain\.com [NC] 
RewriteRule ^/?contact$ /contact.php?username=%1 [L] 

RewriteCond %{HTTP_HOST} !^www\.domain\.com 
RewriteCond %{HTTP_HOST} ([^.]+)\.domain\.com [NC] 
RewriteRule ^/?album/([a-zA-Z0-9_-]+)/([0-9]+)$ /album.php?username=%1&title=$1&album_id=$2 [L] 
+0

其worked.However,我必須設置爲每一個超鏈接一樣喜歡「/接觸」「/專輯」或「/照片」?無論如何,它會自動應用它們嗎? – HoanNguyen

+0

@HoanNguyen看起來他們必須分開,因爲「contact」和「album」有一組不同的查詢字符串(用戶名和用戶名/標題/相冊)。他們必須分開。 –

+0

嗨,我是一個類似的問題,你能看看我的問題嗎?謝謝,我的問題是:[問題](http://stackoverflow.com/questions/32133016/dns-error-with-dynamic-subdomains-with-htaccess) – Jjsg08