.htaccess使用保留文件名和params将域重定向到子域

时间:2013-02-08 18:20:06

标签: .htaccess redirect

我想使用.htaccess重定向这些示例:

example.com
example.com/forum
www.example.com
www.example.com/forum

到此:

forum.example.com

我写这个:

RewriteCond %{HTTP_HOST} !^forum\.example\.com$ [NC]
RewriteRule ^ http://forum.example.com [R=301,L]

这很好,但我想在文件名中保留文件名和参数。所以我改成它:

RewriteCond %{HTTP_HOST} !^forum\.example\.com$ [NC]
RewriteRule ^(.*)$ http://forum.example.com/$1 [R=301,L]

没关系,例如当我转到这个网址时:

http://example.com/viewforum.php?f=2

重定向到:

http://forum.example.com/viewforum.php?f=2

但是当我转到这个时候:

http://example.com/forum/viewforum.php?f=2

重定向到此:

http://forum.example.com/forum/viewforum.php?f=2

但是这个目标网址不正确,必须是这样的:

http://forum.example.com/viewforum.php?f=2

如何解决?

由于

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样:

RewriteCond %{HTTP_HOST} !^forum\.example\.com$ [NC]
RewriteRule ^(?:forum\/)?(.*)$ http://forum.example.com/$1 [R=301,L]