WordPressにおけるBasic認証下での予約投稿失敗対策

Worepressの機能に予約投稿というのがある。
なかなか便利な機能なのだが、Basic認証をかけているサーバだとエラーとなってしまうケースがある。
この対策をまとめる。

とりあえず対策の結論から。
Basic認証をかけるために「.htaccess」というファイルがサーバにあると思います。
それを開いて下記コードを追加します。

.htaccessに追加するコード

  1.  Satisfy any
  2.  order deny,allow
  3.  deny from all
  4.  allow from (サーバのIPアドレス)

これで予約投稿ができるようになったと思います。

ここから詳しい内容について書きます。興味ない人は見なくてもいいかも。

まず、エラーが起きる原因から説明。
Wordpressの予約投稿の動きは以下の通りになっている。
①サイトに誰かがアクセスする。
②予約時間に達している予約投稿がないか探す。
③あればHTTP-CRONを使用して投稿を実行する。

HTTP-CRONはパスワードでプロテクトされたディレクトリへアクセスできないため、ここではじかれてしまい、予約投稿が失敗するみたいです。

ちなみに、いろいろ調べてみたところこのリクエストはWordpressが置いてあるサーバから出されるみたいです。

つまり、サーバのIPアドレスをベーシック認証の例外として設定することではじかれるのを防ぐことができます。

で、追加したコードですが、これはサーバのIPアドレスからの接続は許可するという設定です。
これでサーバから発行されたリクエストはベーシック認証を通らなくなり、HTTP-CRONも正常に動作するようになった。ということです。

どりる のりお の紹介

大阪在住の社会人 趣味は広く浅くをモットーにいろいろなことに手をだしています。 当サイトはリンクフリーですのでどんどんリンクしてください。
カテゴリー: Wordpress, WPTips, 技術メモ   パーマリンク

WordPressにおけるBasic認証下での予約投稿失敗対策 への1件のコメント

  1. Great! thanks for the share!

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">