我需要将每个子域重定向到它所属的域,并使用mod_rewrite将子域名更改为参数,我不知道如何。此外,我需要“重新索引”参数,以便子域名成为uri的第一个参数,uri的其他参数按照自己的顺序跟随它。像这样的东西
category.domain.com/search/flowers
到
domain.com/category/search/flowers
有关如何使用mod_rewrite实现此目的的任何想法?
干杯!
答案 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行中第一个匹配的模式。