WordPress のテーマやプラグインを試すためのテストサイトがある。
テストサイトだから Basic 認証でアクセス制限をかけていていたけど、SNI 化したことで必ずリバースプロキシの nginx(192.168.1.x)がテストサイトへのアクセス元となっている。
wp-cron.php を正しく動作させるため、LAN 内(192.168.1.0/24)の PC を信頼できるアクセス元として Basic 認証の対象外にすると、192.168.1.x も対象外になるから Basic 認証として機能しない。
かと言って Require not ip 192.168.1.x とすると、結局テストサイトへの全ての接続が Basic 認証の対象になるから、wp-cron.php も Basic 認証の対象になってしまい、予約イベントが正しく動作しなくなる。
少し悩んだ結果、Basic 認証をやめてタイトルのプラグインを使った常時メンテナンス中にすることで、一般には公開しないこととした。
管理者は普通に表示されるからお試しサイトとしての目的は達成できる。
LightStart – メンテナンス モード、近日公開およびランディングページビルダー
簡単なドラッグ&ドロップページビルダー は、近日公開予定のページ、メンテナンス ページ、またはランディング ページに最適なスプラッシュ ページをサイトに追加します。
wp-cron.php を Basic 認証ありのサイトで正しく動作させる他の方法として、wp-cron.php ”だけ”アクセス制限の対象としないというのもアリらしい。
Basic認証下でWP Cronを動かす
Basic認証下でWP Cronを動かす. GitHub Gist: instantly share code, notes, and snippets.
コメント
コメント一覧 (1件)
[…] こっちの記事で wp-cron.php が正しく動作しなくなるから Basic 認証を諦めたと書いた。でも、wp-cron.php をシステムの cron で実行すれば、全くページロードがなくてもスケジュールされたタ […]