将所有http和https子域重定向到其他子域

时间:2017-01-01 18:07:39

标签: apache mod-rewrite

我正在尝试重定向:

  • minecloud.domain.co
  • HTTPS // minecloud.domain.co
  • beta.minecloud.domain.co

  • HTTPS // beta.minecloud.domain.co

这是我的代码,但它没有将https // minecloud.domain.co重定向到我想要的内容:

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
RewriteCond %{HTTP_HOST} !^beta.minecloud\.
RewriteRule ^(.*)$ https://beta.minecloud.%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这应该适合你:

# Redirect http://beta.minecloud.domain.co/ to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^beta\.minecloud\.domain\.co$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
# Redirect minecloud.domain.co to beta.minecloud.domain.co
RewriteCond %{HTTP_HOST} ^minecloud\.domain\.co$
RewriteRule ^ https://beta.minecloud.domain.co%{REQUEST_URI} [L,R=302]

您确定要重定向302吗? 301永久重定向可能对您更好,尽管这些302更适合测试。

第3行的额外RewriteCond是必要的,以避免http://minecloud.domain.co的双重重定向。