web-dev-qa-db-ja.com

Httpsの投稿の中にhttpのURLで画像を読み込む

httpsの下で実行されているアーカイブページがあります。すべての画像がhttpでurlしているので、投稿内の画像は読み込まれません。

それは蛇腹のような誤りを与えています、

Blocked loading mixed active content "http://www.example.com/wp-content/uploads/image.jpg"

どのように私はそのエラーを回避し、そのページに画像をロードする必要があります。

URLを相対URLに変換することによって修正する最も簡単な方法を記事で見ました。

例えば:

http://www.example.com/wp-content/uploads/image.jpg -> //wp-content/uploads/image.jpg

どのようにすればいいですか。

4

str_replace関数を使ってURLをhttpsに変換するだけです。

$content = get_the_content();
$content = apply_filters( 'the_content', $content );
$content = str_replace( ']]>', ']]>', $content );
$content = str_replace("http://example.com/", "https://example.com/", $content);
echo $content;

イベントあなたはこの方法で相対的なURLを作ることができます。

1

Search and Replace (WordPress.org codexで推奨)というビルド済みツールがあり、このタイプの変更に対してデータベースを安全に編集するために使用できます。プロトコル相対リンク//wp-content/...を使用するか、すべてをhttpsに変更して混合コンテンツを防止するかは、引き続き選択できます。

このツールの理由は、より簡単なSQLの置き換えではなく、データがWordPressデータベース内のserializedであり、適切に処理されない場合、または処理されるためです。破壊される

これを使用する前に、常にデータベースのバックアップを作成してください。このツールには、実際にタスクを実行する前に影響を受けるテーブルを確認できるように、ドライランを実行するオプションもあります。個人的には(明らかな理由で)ドライランを推奨し、影響を受けるテーブルを書き留めます。ここから、サーバーが非常に高速でない場合は、プロセスがハングアップして失敗しないように、一度に変更するテーブルを少量だけ選択するのが賢明です。影響を受けるテーブルを書き留めることは、ライブランで影響を受けないテーブルを完全にスキップできることを意味します。

リスクがないわけではありませんが、適切に行うと、ライブサイトでcan実行できます。有効になりますが、100%受け入れられたリンクを有効に変更することはありません。100%受け入れられたリンクは、プロセスがハングするほど高いワークロードを与えない限り、サイトに悪影響を与えることはありません。 また、ライブサイトでの間違いは悪いので、それらをしないでください

使用する建設エリアがある場合は、絶対に使用してください。しかし、そうでない場合は、このツールを問題なくライブサイトで実行できるisと言っています。しかし、それは決して馬鹿な証拠ではありません。建設などからサイトを移動するためにこのツールを頻繁に使用します。これが初めての場合は...トラブルを予想し、常に最悪の事態を予期して計画します。バックアップを作成して準備します。

バージョン2に関する注意? vs 3.?:

サーバーが古い場合は、バージョン2が最適です。サーバーが新しい場合は、バージョン3を試してください。どちらも非常に使いやすいですが、サーバーがv3を受け入れてからそれを使用する場合、それはより新しく、すべてを1ページで実行するため、非常に便利です。バージョン3でドライランを試してください。サーバーがそのバージョンを実行できるかどうか、または古いバージョン2を使用する必要があるかどうかを確認する必要があります。

大きな注意:

ツールがあなたに知らせるべきであるように、DO NOT使い終わったらこれを削除することを忘れないでください。これを悪意のあるキャラクターが悪用するために残しておくことは望ましくありません。

3
KnightHawk

WordPressサイトのURLフォームのHTTPをHTTPSに更新する場合、または新しいドメインに移行する場合は、非常に一般的な問題です。部分的な解決策はあなたの設定であなたのWordPressのホームとサイトのURLを更新することですが:

enter image description here 

それはあなたの投稿の新しいURL構造が修正されるという意味ではありません。その結果、一部のページでは代わりにHTTPリンクが指定されます。

WebサイトのすべてのURLが最新のものであることを確認する簡単な方法として、次のSQLクエリを使用してください。

SQLクエリ

UPDATE wp_options SET option_value = replace(option_value, 'OLD_URL', 'NEW_URL') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'OLD_URL','NEW_URL');
UPDATE wp_posts SET post_content = replace(post_content, 'OLD_URL', 'NEW_URL');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'OLD_URL','NEW_URL');
  • OLD_URLhttp://example.comに置き換えられます(非HTTP)
  • NEW_URLhttps://example.comに置き換えられます(HTTPS)

問題が発生した場合に備えて、このSQLクエリを実行する前にデータベースを必ずバックアップしてください。

以前にバックアップを取ってください

私はあなたに2つのことを提案します:

最初:

あなたのコンテンツを変更する3つの可能性があります。

  • 常設ツール: これはwordpress を検索して置換します。
    それはエレガントではないし、それはあなたのウェブサイトを壊すかもしれませんが、私は何度も使っています、そしてそれは同様に働きます。

    私はそれがあなたがあなたのサイト全体のデータベースをワンショットで変更するのを助けることができると思う。

    それはあなたのイメージをプラグインに固定しませんが、それはまったく助けになることができます。

  • 一時的なツール:これに慣れていない場合は、無料の 本当にシンプルなssl add_actionを使用してコンテンツを変更する、http => https)を使用することもできます。

  • 一時的なツール:これをあなたのfunction.phpに追加してください:

    function change_http_into_content( $content ) { $custom_content = str_replace('http://', 'https://', $content ); return $custom_content; } add_filter( 'the_content', 'change_http_into_content' );

Second:

また、URLをカスタムJS、AJAX request、その他のプラグインに変更することを忘れないでください。

2

HttpのURLで画像を読み込むには、以下の手順に従います。

  1. PhpmyadminエクスポートデータベースのSQLファイルに移動します。
  2. テキストエディタでSQLファイルを開きます。
  3. " https://www.example.com/wp-content/uploads/image.jpg "のようなURLを見つけます。
  4. URLを " http://www.example.com/wp-content/uploads/image.jpg "のように置き換えます。
  5. ファイルを保存して、更新されたSQLファイルをインポートします。

その役に立つことを願っています。

0
Amarendra Kumar