2015-10-29 72 views
0

我需要做适当的实施一些重定向,因为我不是一个.htaccess专家我需要一些帮助。重定向http到https和子域到根域

我基本上拥有一个域(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

在你的.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] 
+0

嘿,我只是试过,但现在domain1重定向到domain2,就是这样。我需要domain1才能访问,并且只需将domain2.domain1.com重定向到domain2以及在domain2上对https进行的所有http请求。真的很难找到我的头。 –

+0

您的需求令人困惑。您需要将所有非SSL请求传递给'domain1.com'和'domain2.com',这些请求将http重定向到https:// domain2.com?或者如果它的domain2.domain1.com重定向到https:// domain2.com? –

+0

对不起!我需要将domain2.domain1.com重定向到domain2.com。然后,我需要将domain2的所有http请求重定向到https。那有意义吗? –