HTTPとHTTPSの両方でコンテンツを配信しているWordPressをインストールしました。サイトのURLは「http://www.example.com」として設定されています。これはほとんどの状況で機能します - ある人が "https://www.example.com/page"でページを要求した場合、そのページはHTTPS経由で配信されます。
しかし、私が直面している課題は、サイトのURLを取得する多くのWordPressテンプレート関数(get_bloginfo( 'stylesheet')など)があることです。結果。同様に、WYSIWYGエディタに挿入された画像には、「http://www.example.com ...」というパスがハードコードされています。
私が本当にやりたいことは、ベースサイトのURLを "//www.example.com"として定義する方法を見つけることです。しかし、WordPress管理者フィールドはこれをサポートしません。
誰かがこれを行う方法について何かアイデアがありますか?
簡単な解決策は、.htaccessルールを使うことです。
#Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
HTTPSを強制したくない(またはHTTPS以外の要求をすべてリダイレクトしたくない)場合は、投稿内のURLを次のように処理します。
function content_ssl($content) {
if (isset($_SERVER["HTTPS"]))
$content = ereg_replace("http://" . $_SERVER["SERVER_NAME"], "https://" . $_SERVER["SERVER_NAME"], $content);
return $content;
}
add_filter('the_content', 'content_ssl');
WordPress自体がプロトコルマッチングを処理します。しかしいくつかのプラグインはそうではありません。