.htaccess 使用htaccess将旧域重定向到新域根目录或目录

.htaccess 使用htaccess将旧域重定向到新域根目录或目录,.htaccess,redirect,mod-rewrite,.htaccess,Redirect,Mod Rewrite,我有多个旧域需要重定向到新域, 根据以下规则,发送到特定文件夹或新域上的相同url参数: olddomain1.com/->重定向到newdomain.com/a olddomain1.com/parameter=x->重定向到newdomain.com/parameter=x olddomain2.com/->重定向到newdomain.com/b olddomain2.com/parameter=x->重定向到newdomain.com/parameter=x 到目前为止,我有以下代码: R

我有多个旧域需要重定向到新域, 根据以下规则,发送到特定文件夹或新域上的相同url参数:

  • olddomain1.com/->重定向到newdomain.com/a
  • olddomain1.com/parameter=x->重定向到newdomain.com/parameter=x

  • olddomain2.com/->重定向到newdomain.com/b

  • olddomain2.com/parameter=x->重定向到newdomain.com/parameter=x
  • 到目前为止,我有以下代码:

    RewriteCond %{HTTP_HOST} ^olddomain1\.com$ [OR]
    RewriteCond %{HTTP_HOST} ^www\.olddomain1\.com$
    RewriteRule ^/?$ "http\:\/\/www\.newdomain\.com\/$1" [R=301,L]
    RewriteRule ^$ /a
    
    RewriteCond %{HTTP_HOST} ^olddomain2\.com$ [OR]
    RewriteCond %{HTTP_HOST} ^www\.olddomain2\.com$
    RewriteRule ^/?$ "http\:\/\/www\.newdomain\.com\/$1" [R=301,L]
    RewriteRule ^$ /b
    
    问题是,如果尝试加载 它让我感到

    您能帮助修复此代码以使其正常工作吗?
    谢谢

    您可以使用以下规则:

    ##Redirect "domain1.com" to "/a"##
    RewriteCond %{HTTP_HOST} ^(www\.)?olddomain1\.com$ 
    RewriteRule ^$ http://www.newdomain.com/a [R,L]
    ##Redirect "domain1.com/foo" to "newdoamain/foo"##
    RewriteCond %{HTTP_HOST} ^(www\.)?olddomain1\.com$ 
    RewriteRule ^(.+)$ http://www.newdomain.com/$1 [R,L]
    ##Redirect "domain2.com" to "/a"##
    RewriteCond %{HTTP_HOST} ^(www\.)?olddomain2\.com$ 
    RewriteRule ^$ http://www.newdomain.com/b  [R,L]
    ##Redirect "domain2.com/foo" to "newdoamain/foo"##
    RewriteCond %{HTTP_HOST} ^(www\.)?olddomain2\.com$ 
    RewriteRule ^(.+)$ http://www.newdomain.com/$1 [R,L]
    

    作品谢谢我是否应该添加一个[R=301,L]而不是[R,L]?R是一个临时重定向。默认情况下,它使用302状态代码,您可以将R更改为R=301以使重定向成为永久。