LoginSignup
32
31

More than 5 years have passed since last update.

WordPress をSSL運用すると管理画面でアップロードした画像が見れない

Posted at

WordPressネタばかりで嫌だ・・・。1日1個おかしな点が見つかる・・・。

Summary

  • WordPress 管理画面をSSLで運用
  • アイキャッチ画像を選ぶときに、アップロードした画像が見れない
  • 管理画面がSSLなのに img タグの src が HTTP通信なのが原因(WordPress自体のバグ)
  • さっさと直してくれよお願いだから。

Details

管理画面を SSL で運用(するよね?普通)

一応商業利用ですもの、管理画面はSSLにするじゃないですか。
もともとあまり考えられていないのか?SSLにすると何かしら事件が起きる WordPress ですが・・・

画像が見えない

よしきた。
管理画面に SSL を導入したその日、ログイン画面で CSS や画像が見えない事件が発生したが、それと同じ理由。

最近の(?)WEBブラウザは HTTPS の画面から HTTP通信しようとすると事前に止めてくれます。親切設計。

その時やった設定はこちら↓

httpd.conf
...
DocumentRoot /root/to/wordpress
SetEnv HTTPS on  #これを追加
...

ELBの背後で80番しか受け取らないようにしているので、自分で環境変数を設定する必要があり。
wordpress 内に実は is_ssl() という関数があって、その中で環境変数を読んでくれます。

wp-includes/functions.php
3367 function is_ssl() {
3368   if ( isset($_SERVER['HTTPS']) ) {
3369     if ( 'on' == strtolower($_SERVER['HTTPS']) )
3370       return true;
3371     if ( '1' == $_SERVER['HTTPS'] )
3372       return true;
3373   } elseif ( isset($_SERVER['SERVER_PORT']) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
3374     return true;
3375   }
3376   return false;
3377 }

基本的にはSSLかどうかの判定はこの is_ssl() を使ってやっていて、CSSや画像もSSL通信に変えてくれるのですが・・・。

画像が見れないとはどういう了見だ(#゚Д゚)ゴルァ!!

アイキャッチ画像が見れない。
自分でアップロードした画像を「アイキャッチ画像」として選ぶのですが、その画像が見れない。

要素を検証すると、どっかで見た状態。
<img src="http://xxx...">

(つд⊂)ゴシゴシ
(つд・)
(つд⊂)ゴシゴシ
(・д⊂)
なんでや!(#゚Д゚)ゴルァ!!

調べた

こんな記事を見つけた↓
https://core.trac.wordpress.org/ticket/15928

WordPress の既存バグじゃねぇかよ!!!

3年前から議論してて未だに未対応って・・・。
4.0 で入れっからーじゃねぇよ(#゚Д゚)ゴルァ!!

直した

使ってるテーマの functions.php に以下を追加。
※ちなみに添付されてる最新のパッチでは直りませんでした\(^o^)/

functions.php
// http => https  -----------------------------------------------------
function fix_ssl_attachment_url( $url ) { 
    if( is_ssl() ){
        $url = preg_replace('/^http:/', 'https:', $url);
    }   
    return $url;
}
add_filter('wp_get_attachment_url', 'fix_ssl_attachment_url');

もういい加減 WordPressネタやめたい・・・。

32
31
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
31