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

如何将子域重定向到其他域

  •  3
  • Codex73  · 技术社区  · 14 年前

    我试图通过htaccess mod rewrite实现的目标:

    例如

    test2.olddomain.com ===> test2.newdomain.com

    test3.olddomain.com test3.newdomain.com

    到目前为止,这就是我所知道的,当然是错误的:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^olddomain\.com$ [NC]
    RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
    
    RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$ [NC]
    RewriteRule ^(.*) http://www.newdomain.com/$1 [R=301,L]
    
    RewriteRule [a-zA-Z]+\.olddomain.com$ http://$1.newdomain.com/ [R=301,L]
    

    2 回复  |  直到 14 年前
        1
  •  3
  •   Artelius    14 年前

    在.htaccess文件中,重写规则匹配的“URL”已从域名和指向当前目录的任何目录中删除(在.htaccess文件中使用mod\u rewrite是一个巨大的痛苦;如果您有权访问服务器配置,请改为在那里执行!!)

    因此,假设.htaccess位于DocumentRoot中,请尝试以下操作:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(.*)olddomain\.com$ [NC]
    RewriteRule ^(.*)$ http://%1newdomain.com/$1 [R=301,L]
    

    %1应该与RewriteCond中的第一个组匹配,$1应该与URL部分匹配。

        2
  •  0
  •   Roadmaster    14 年前
    RewriteRule ^(.+)\.olddomain\.com$ http://$1.newdomain.com/ [R=301,L]