apache - 将子域重定向到另一个域

时间:2010-10-16 17:56:14

标签: apache .htaccess

我需要将每个子域重定向到它所属的域,并使用mod_rewrite将子域名更改为参数,我不知道如何。此外,我需要“重新索引”参数,以便子域名成为uri的第一个参数,uri的其他参数按照自己的顺序跟随它。像这样的东西

category.domain.com/search/flowers

domain.com/category/search/flowers

有关如何使用mod_rewrite实现此目的的任何想法?

干杯!

1 个答案:

答案 0 :(得分:7)

您可以为所有子域使用一个VirtualHost执行此操作:

<VirtualHost *:80>
    ServerName category.domain.com
    ServerAlias foo.domain.com bar.domain.com

    RewriteEngine On
    RewriteCond %{HTTP_HOST} (.*).domain.com
    RewriteRule (.*) http://domain.com/%1$1 [R=301,QSA,L]
</VirtualHost>

要使其正常工作,您必须将某些内容设置为ServerName,因此只需选择一个并在ServerAlias行上列出其余子域。

您可以拥有多个ServerAlias行,因此如果您有大量子域,可以将它们分成多行以便于阅读。

在RewriteRule中,%1匹配前面RewriteCond行中第一个匹配的模式。