こんにちは、阿久梨絵です!
今回は、WordPressサイトで ads.txt が正しく配置されているのに、Google AdSenseが読み込めないというトラブルに遭遇しました。
原因は、リダイレクトループ(ERR_TOO_MANY_REDIRECTS)。そしてその根源は .htaccess にありました。
症状:ads.txtがあるのに「読み込めません」
・ads.txt はルートディレクトリに正しく配置済み(https://ドメイン/ads.txt)
・しかし、ブラウザでアクセスすると「このページは動作していません」「ERR_TOO_MANY_REDIRECTS」
・AdSense側でも「ads.txtが見つかりません」の警告
つまり、ファイルはあるのに、アクセスできない状態。
原因:.htaccessのリダイレクト条件がループしていた
.htaccess を確認すると、以下のような記述がありました。
RewriteCond %{HTTP_USER_AGENT} !lscache_runner [NC]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
この設定は「HTTPS強制リダイレクト」ですが、X-Forwarded-Proto ヘッダーが使えない環境(共有サーバーなど)では、常に条件が一致してしまい、無限ループに陥る可能性があります。
解決策:リダイレクト条件を修正
以下のように、より安定する条件に変更しました。
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
これにより、HTTPS未使用時のみリダイレクトが発生し、ループが解消。
ads.txtにも正常にアクセスできるようになりました。
修正後のポイント
・.htaccess の編集は ルートディレクトリのファイルのみ有効
・ads.txt は必ず https://ドメイン/ads.txt でアクセス可能にする
・WordPressの「サイトURL設定」も https:// に統一する
・リダイレクト条件は 環境に合わせて慎重に設計する
まとめ
リダイレクトループは、見えないところでサイト全体を止める危険な罠です。
特に .htaccess の条件が複雑化している場合、 ads.txt のような静的ファイルにも影響が出ることがあります。
「ファイルはあるのに読めない」──そのときは、リダイレクト設定を見直すタイミングです。
阿久梨絵でした!
