如何使用.htaccess正确捕获所有子域(和重定向)?

时间:2011-04-04 05:17:55

标签: apache .htaccess redirect subdomain catch-all

我的服务器上设置了通配符子域(* .domain.com)。我现在想使用.htaccess将所有* .domain.com请求重定向到我服务器上的脚本main.php。我搜索了有助于完成重定向的代码,但我还没有完全成功。我找到的最佳工作代码是:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC] 
RewriteRule ^(.*)$ http://domain.com/%1 [QSA,R=301,L]

但是,www.subdomain.domain.com会重定向到domain.com/www.subdomain而不是domain.com/subdomain。如何在代码中修复?有没有更好的方法呢?

提前致谢!

1 个答案:

答案 0 :(得分:3)

你能试试这个重写规则吗?

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)\.domain\.com$ [NC] 
RewriteRule ^(.*)$ http://domain.com/%2 [R=301,L]