使用mod_rewrite的虚拟域和子域

时间:2012-01-07 16:37:24

标签: mod-rewrite dns subdomain

我想创建一项服务,用户可以在我的服务上获得子域名或常规域名。

我们的想法是除了www.之外的所有子域都应该转到/subdomains.php?user=[sub]&url=[requestet url]

除我自己的2个域名外的所有域名都应转到/domain.php?url=$1

我的2个域名是: domain1.comdomain2.se

我尝试过以下代码:

<IfModule mod_rewrite.c>
Options +FollowSymLinks

RewriteEngine On

# Rewrite sub domains.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} !^www\.domain1\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain1\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domain2\.se$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain2\.se$ [NC]
RewriteRule ^(.*)$ /subdomain.php?user=%2&url=$1 [QSA,L]

#Rewrite 
RewriteCond %{HTTP_HOST} !^www\.domain1\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domain2\.se$ [NC]
RewriteRule (.*) http://www.domain1.com/domain.php?url=$1 [R=301,L]
</IfModule>

但它看起来没有用。

1 个答案:

答案 0 :(得分:0)

子域名:您如何期望某个网址同时domain1.comdomain2.se的子域名?

尝试例如这种简化:

RewriteCond %{HTTP_HOST} !^www\.(domain1\.com|domain2\.se)$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.(domain1\.com|domain2\.se)$ [NC]