【问题标题】:.htaccess redirect from one domain to another including subdomains.htaccess 从一个域重定向到另一个域,包括子域
【发布时间】:2016-03-26 15:08:01
【问题描述】:

我有两个域,例如:

  • example.com
  • website.co.uk

我想通过以下方式重定向:

  • example.com --> https://www.website.co.uk
  • alt.example.com --> https://www.alt.website.co.uk
  • test.example.com --> https://www.test.website.co.uk

如您所见,我希望它始终强制 https www.

但是,我也希望它记住 URL 结构的其余部分,例如:

  • example.com/folder/index.html --> https://www.website.com/folder/index.html
  • alt.example.com/test/ --> https://www.alt.website.com/test/
  • test.example.com/o/index.php --> https://www.test.website.com/o/index.php

我不确定最好的方法,我发现的两个选项是尝试重写规则,另一个是 301 重定向。

【问题讨论】:

  • (是的,副本保留协议而不是强制https,但这是两者中更简单的情况。只需删除条件并将协议设置为https)
  • 不,不是重复的,因为我希望它强制使用 www 和 https,否则将有 3 个重定向,因为我的主站点已经强制使用 www 和 https
  • 链接问题中只有 1 个重定向。这不是一个完美的复制品,但变化太小了,我觉得我必须抄袭那里的答案才能回答这个问题。如果您了解那里的指令,那么使您的需求生效的更改应该是微不足道的。

标签: apache .htaccess mod-rewrite redirect


【解决方案1】:

试试下面的规则

RewriteEngine on


#redirect subdomains
RewriteCond %{HTTP_HOST} ^((?!www).+)\.domain.com$
RewriteRule ^(.*)$ http://%1.domain2.com/$1 [L,R]

#redirect domain

RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$
RewriteRule ^(.*)$ http://www.domain2.com/$1 [L,R]

【讨论】:

    猜你喜欢
    • 2020-05-04
    • 2010-10-14
    • 2013-10-19
    • 2019-01-12
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    相关资源
    最近更新 更多