簡體   English   中英

如何將http://domain.com重定向到https://www.domain.com?

[英]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 )或ChromeSafariIE中的開發人員工具查看是否存在任何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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM