我已经获得了SSL证书。我安装了Wordpress,请参阅下面的hostgator文件管理器中的文件夹结构:
我已经在wp_config.php
中放入了define('FORCE_SSL_ADMIN', true);
Wordpress常规设置:WordPress地址(URL):https://www.domain.com/blog网站地址(URL):https://www.domain.com
public_html
-> blog (inside is the wordpress installation)
database structure
-> wp_options
-> siteurl: https://www.domain.com/blog
-> home: https://www.domain.com
我尝试了hostgator cpanel重定向,但不起作用。
我还在谷歌搜索时尝试了一些编辑.htaccess
的解决方案。
也许我遗漏了一些与文件夹结构有关的内容。
.htaccess
:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress
您通常只需将规则添加到wordpress规则中。他们走在wp规则之前。
RewriteEngine On
#rewrite http to https and add www. All cases covered
RewriteCond %{HTTPS} !^on [OR]
RewriteRule %{HTTP_HOST} ^exmaple'.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress
您将需要两个虚拟主机,一个用于端口443(https),一个用作端口80。在端口80中,您可以简单地为所有流量设置重定向规则
<VirtualHost *:80>
...
RewriteEngine On
RewriteRule .* https://www.domain.com [R=301,L]
...
</VirtualHost>
使用
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^example'.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
以在所有条件下强制SSL(有或没有www
)。
此外,正如您所做的,在Wordpress常规设置中更改为https
。
不要在# BEGIN WordPress
和# END WordPress
重写块中添加强制SSL规则,因为如果您重新保存永久链接(甚至是插件),您的SSL规则将被删除。
然后使用Firefox(或Firebug)、Chrome、Safari或IE中的开发工具来查看是否存在任何non-secure
元素错误,例如样式表和functions.php文件中的硬编码http://
URL。
这是我修复的最后手段。我在header.php中放了一个php代码,用于检查输入的url是否为https,如果不是,则会重定向到带有https的url。
<?php
if (empty($_SERVER['HTTPS'])) {
header('Location: https://domain.com');
exit;
}
?>
谢谢大家,