4

目前,我通过使用 htaccess 有一个这样的 url 系统:

- 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" 的内容(没有 url地址栏中的更改)

请帮忙 !!

4

1 回答 1

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]
于 2012-12-14T09:50:14.613 回答