2013-10-03 15 views
12

私のWordpressのディレクトリには、私は最近、HTTPSを強制的にサイト全体を変更www.example.com/blogHTTPSを強制リダイレクトはWordPressで動作していない

です。だから、中/ブログ/私の.htaccessファイルは次のようになります。

​​

私はまた、HTTPSであることをWordpressの設定でサイトのURLを変更しました。

これはホームページでは完全に機能しますが、どのポストページでも、エンドユーザーはURLを変更してEnterキーを押して非セキュアHTTPに変更できます。

たとえば、直接入力することができます:http://www.example.com/blog/post-1/と、HTTPとして読み込みます。

私の.htaccessファイルで何が問題になっていますか?緩い終わりはどこですか?

答えて

30

ルールの順序を変更します。最初にhttpsにリダイレクトしてから、すべてのリクエストを引き継ぐようにします。そのような生活のために

<IfModule mod_rewrite.c> 
RewriteEngine On 

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

RewriteBase /blog/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 
</IfModule> 
+2

ありがとうございました!それはトリックをした –

+1

私は確かに私の '.htaccess'の構文エラーだと思ったが、確かにそれはワードプレスの書き換えが最初に来ていた。ありがとう! – cfx

+1

私にとっても完璧に動作します。 – ColinMcDermott

0

また、HTTPSを

define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']); 
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']); 

だから、簡単にdevの環境のためのhttpのための条件を作ることができるのwp-config.phpファイルに以下の2行を追加し、することができます

if(strpos($_SERVER['HTTP_HOST'], 'livedomain.com') !== FALSE){ 
    define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']); 
    define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']); 
} else { 
    define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']); 
    define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']); 
} 
関連する問題