带有htaccess的动态子域(不是重定向)

时间:2012-12-14 08:48:24

标签: .htaccess dynamic subdomain

目前,我正在使用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”(地址栏中没有更改网址)。

如果可能,是否有机会为其他新网址保留相同的结构,例如当我输入时:

  • “username.domain.com/contact”将加载“www.domain.com/member/username/contact”的内容(地址栏中没有更改网址)
  • “username.domain.com/album/title-of-the-album/albumID”将加载“www.domain.com/member/username/album/title-of-the-album/albumID”的内容(地址栏中没有网址更改)

请帮助!!

1 个答案:

答案 0 :(得分: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]