2013-02-25 100 views
0

我想这重定向的工作,但它不是:Apache的重定向问题

RewriteCond %{HTTP_HOST} ^(.*)\.sub\.my-domain\.com$ 
RewriteRule ^(.*)$ http://sub.my-domain.com/$0 [R=301,L] 

它想工作,如:

*.sub.my-domain.com -> sub.my-domain.com 
123.sub.my-domain.com -> sub.my-domain.com 
asdf.sub.my-domain.com -> sub.my-domain.com 
+0

如果你在'RewriteRule'改变'$ 0'到'$ 1'应该再改变'123.sub.my,domain.com'到'sub.my-domain.com/123'。那是你想要达到的目标吗? – sjdaws 2013-02-25 12:01:29

+0

不,我只希望'* .sub.my-domain.com'的所有​​子域都可以重定向'sub.my-domain.com'。例如:'www.sub.my-domain.com'重定向到'sub.my-domain.com'。 – SubZeroFX 2013-02-25 14:15:22

回答

1

做到这一点,最好的办法是用虚拟主机容器为它赢得不需要任何额外的解析工作。

重定向一切sub.my-domain.com,同时保留任何路径

<VirtualHost *:80> 
    ServerName *.sub.my-domain.com 
    Redirect permanent/http://sub.my-domain.com/ 
</VirtualHost> 

然后你有正常的虚拟主机容器sub.my-domain.com

如果你想重写,你需要这个。它检查主机是否是正确的和重定向,如果它不是

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{HTTP_HOST} !^sub\.my-domain\.com$ [NC] 
RewriteRule ^(.*)$ http://sub.my-domain.com/$1 [R=301,NC,L] 
+0

好吧,我在开始时遇到了一些问题,因为我的反向dns,但现在所有固定和工作 – SubZeroFX 2013-03-06 12:33:15