与htaccess的动态子域(不定向)(Dynamic subdomain with htacces

2019-07-05 06:42发布

目前,我有一个网址系统,这样使用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”(无URL变化在地址栏)的内容
  • “username.domain.com/album/title-of-the-album/albumID”将加载“www.domain.com/member/username/album/title-of-the-album/albumID”的内容(没有网址在地址栏更改)

请帮忙 !!

Answer 1:

尝试:

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]


文章来源: Dynamic subdomain with htaccess (not redirect)