将http重定向到https,将子域重定向到根域

时间:2015-10-29 20:45:13

标签: wordpress apache .htaccess redirect

我需要正确实现一些重定向,因为我不是.htaccess专家,我需要一些帮助。

我基本上拥有一个域(domain2),它被设置为另一个域(domain2)的子域,它连接到我的共享主机方案。我通过cPanel为domain2安装了SSL证书,并安装了WordPress以在domain2上运行。

我需要将所有http请求重定向到https,将domain2重定向为domain1的子域,并确保它不会干扰WordPress .htaccess的内容。

这是我尝试过的。 http到https重定向似乎工作正常,但我仍然可以访问domain2.domain1.com,它不会将我重定向到domain2.com。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} ^domain2\.domain1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain2\.domain1\.com$
RewriteRule ^/?$ "http\:\/\/domain2\.com\/" [R=301,L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

在.htaccess中尝试以下一条规则。

替换

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} ^domain2\.domain1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain2\.domain1\.com$
RewriteRule ^/?$ "http\:\/\/domain2\.com\/" [R=301,L]

有了这个。

RewriteCond %{HTTPS} !^on
RewriteCond %{HTTP_HOST} ^(www\.)?domain2\.domain1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^(www\.)?domain2\.com$
RewriteRule ^(.*)$ https://domain2.com/$1 [R=301,L]