强制重定向到https by htaccess

时间:2015-12-02 06:15:35

标签: .htaccess ssl https

我有域名和子域名,例如example.com和blog.example.com,并且在bluehost上使用通配符都启用了ssl。我添加了bluehost

建议的以下代码

自定义子域.htaccess SSL + WordPress

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^subdomain.maindomain.com$
    RewriteCond %{REQUEST_URI} !^/subfolder/
    RewriteRule ^(.*)$ /subfolder/$1
    RewriteCond %{HTTP_HOST} ^subdomain.maindomain.com$
    RewriteRule ^(/)?$ subfolder/index.php [L]
    # End custom subdomain .htaccess

    # Custom maindomain .htaccess WordPress
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com$
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # End custom maindomain .htaccess

网站正在https上正常运行,但也可以通过http访问它们。

我尝试使用代码来强制重定向,但它无效。

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

我还有两个用于主域的htaccess文件,以及子域和上面的代码放在主域htaccess文件中。

我做错了什么或遗漏了一些东西强迫用https://?

打开所有网址

1 个答案:

答案 0 :(得分:1)

你试过这个:

仅适用于域名

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

对于子域(在子域文件夹中放置.htaccess)

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://blog.example.com/$1 [R,L]