![](/img/trans.png)
[英]SSL Error: how to redirect https://www.domain.com to http://domain.com via .htaccess to avoid SSL error
[英]How to redirect http://domain.com to https://www.domain.com?
我已經獲得了SSL證書。 我安裝了Wordpress,請參閱我的hostgator文件管理器中的文件夾結構:
我已經把define('FORCE_SSL_ADMIN', true);
在wp_config.php
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
您將需要2個虛擬主機,一個用於端口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;
}
?>
謝謝大家,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.