.htaccess重定向一个域名到另一个域名,包括子域名。

3
我有两个域名,例如:
- 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重定向。

1
可能是重复的问题,参考 htaccess redirect for non-www both http and https - Sumurai8
(是的,重复保留了协议而不是强制使用https,但这是两种情况中更简单的情况。只需删除条件并将协议设置为https即可) - Sumurai8
不,这不是重复的问题,因为我想强制使用www和https,否则会有3个重定向,因为我的主站已经强制使用www和https。 - Ryflex
链接的问题中只有一个重定向。它不是完全重复,但更改非常微小,以至于我觉得必须抄袭那里的答案来回答这个问题。如果你理解那里的指令,使你的要求工作的更改应该是微不足道的。 - Sumurai8
1个回答

3
尝试以下规则。
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]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接