代码之家  ›  专栏  ›  技术社区  ›  yoda

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

  •  2
  • yoda  · 技术社区  · 14 年前

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

    category.domain.com/search/flowers
    

    domain.com/category/search/flowers
    

    干杯!

    1 回复  |  直到 14 年前
        1
  •  7
  •   bradym    14 年前

    对于所有子域,您可以使用一个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>
    

    可以有多个服务器别名行,因此如果有大量子域,可以将它们拆分为多行以提高可读性。

    在重写规则中,%1与前面重写条件行中的第一个匹配模式匹配。