【问题标题】:using htaccess to redirect old domains to new domain root or directory使用 htaccess 将旧域重定向到新域根目录或目录
【发布时间】:2016-03-23 07:39:03
【问题描述】:

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

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

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

  4. 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

问题是,如果尝试加载 http://www.olddomain2.com/ 它把我送到 http://www.newdomain.com/a

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

【问题讨论】:

    标签: .htaccess redirect mod-rewrite


    【解决方案1】:

    你可以使用这些规则:

    ##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使重定向永久化。
    猜你喜欢
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 2016-11-22
    • 2014-08-28
    相关资源
    最近更新 更多