ads.txt が読み込めない!? リダイレクト地獄と.htaccessの罠

こんにちは、阿久梨絵です!
今回は、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 のような静的ファイルにも影響が出ることがあります。
ファイルはあるのに読めない」──そのときは、リダイレクト設定を見直すタイミングです。
阿久梨絵でした!

上部へスクロール
Verified by MonsterInsights