SSL専用Webサイトに掲載しようとしているWordpressテーマがあります。 SSL版以外のサイトはありません。
Wordpressテーマはbloginfo('pingback_url')
、bloginfo('template_directory')
、get_template_directory_uri()
などのようなさまざまな機能を使用します。テーマのためのすべての典型的な機能。
これらの関数はすべてhttp
ではなくhttps
リンクを生成します。したがって、サイトの非SSLバージョンが存在しないため、それらのどれもロードしません。
どのようにしてWordpressにすべての目的でhttps
を使用させるのですか?
このWordPressプラグインをインストールしてみてください。 http://wordpress.org/extend/plugins/wordpress-https/installation/ しかし、プラグインを有効にした後に行うべき追加のことがあるので、インストール手順を読んでください。
WebサイトがSSLを処理するロードバランシングサービス上にある場合、サーバーはサーバー変数$_SERVER['HTTPS']
で何も取得していない可能性があり、$_SERVER['SERVER_PORT']
は443である必要があるときに80になる可能性があります(これを参照- Stack Overflow answer 詳細については)。
これが事実であり、ホストにそれを変更させることができない場合、それをかじってPHPにそれがSSLであることを伝える必要があるかもしれません。 WordPressによって生成されるすべてのURLがhttps URLとして出力されるように、httpsを使用するようにホームおよびサイトのURLを設定します。次に、このコードをプラグインにドロップします( 既製のもの 、プラグインフォルダーにドロップしてアクティブにします):
// if site is set to run on SSL, then force-enable SSL detection!
if (stripos(get_option('siteurl'), 'https://') === 0) {
$_SERVER['HTTPS'] = 'on';
}
NB:ページがSSL経由で読み込まれたかどうかを確認し、読み込まれていない場合はリダイレクトするコードを(プラグインまたは独自のコードで)持っている可能性があるため、これは裏目に出る可能性があります。サーバーは今これをテストできません!したがって、ページにJavaScriptを追加して、安全なページがSSL経由でロードされることをある程度保証する必要があります(これも既製のプラグインによって行われます)。
<script>
if (document.location.protocol != "https:") {
document.location = document.URL.replace(/^http:/i, "https:");
}
</script>
NB:これは絶対確実ではありません!ただし、ほとんどの状況をキャッチする必要があります。例外は、JavaScriptを無効にしてからURLを編集して強制的にhttpに戻す人です。もしそうするなら、彼らはクレジットカードの資格情報をエルボニアに売るに値するでしょう。