RSS登録の不具合から始まったドメイン見直し

最近、iPhoneのRSSリーダーアプリに自分のブログを登録しようとしたところ、意外な問題に出会いました。これまでブログのURLは donguri3.net を使ってきましたが、RSSフィードを https://donguri3.net/feed で登録すると、どうしてもエラーになってしまうのです。
一方、同じ記事が読める https://donguri3.net/feed を指定したところ、あっさり登録成功。アプリ側の挙動に依存している部分はあるにせよ、「どちらを公式にすべきか」と考えると、apexドメイン(donguri3.net)に統一した方が良さそうだと思うきっかけになりました。

目次

ドメイン統一の目的とメリット

今回の目的はシンプルです。「ユーザーが迷わずアクセスできること」と「外部サービス連携のトラブルを減らすこと」。
特にRSSのように、ユーザーの利用環境ごとに微妙な挙動差が出やすい機能では、URLを一本化しておくことが重要です。
さらに、

  • 検索エンジンに対して評価を分散させない
  • SSL証明書の管理が楽になる
  • ブラウザやアプリでの表示URLが短く、覚えやすい
    といった副次的メリットも期待できます。

Rewriteルールでの課題

実際に blog. を donguri3.net にリダイレクトするには、Webサーバーのリライトルールを設定します。OpenLiteSpeed を利用している環境では、以下のようなルールを加えました。

# www. または blog. または www.blog. を削除して apex に統一
RewriteCond %{HTTP_HOST} ^(?:www.)?(?:blog.)?(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301,NC]

この設定により、

  • www.donguri3.net
  • donguri3.net
  • www.donguri3.net
    にアクセスしても、すべて https://donguri3.net/ にリダイレクトされるようになります。

ACME認証と .well-known/acme-challenge/ の扱い

ただし課題が一つありました。SSL証明書の自動更新に使う ACME の http-01 チャレンジは、.well-known/acme-challenge/ という特殊なパスにアクセスできる必要があります。
リライトルールで何も考えずにリダイレクトをかけると、このパスまで301されてしまい、認証に失敗する恐れがあります。そこで、先頭に次のルールを追加しました。

# ACME challenge を完全バイパス
RewriteRule ^.well-known/acme-challenge/ – [L]

これにより、証明書更新用のアクセスはリダイレクトせずにそのまま返すことができ、Let’s Encrypt や ZeroSSL の自動更新が問題なく通るようになります。

今回の対応で得られたこと

  • RSSリーダーアプリの登録エラーを回避できた
  • ドメインを apex に統一し、SEO的にも無駄がなくなった
  • SSL証明書の更新処理も安全に運用できるようになった

結果として、ユーザーにとっても運営者にとっても「迷いのないURL」が整備できました。


まとめ

最初は「RSSリーダーで登録できない」という小さな問題でしたが、掘り下げてみると、ドメイン運用を整理する良いきっかけになりました。
サブドメインをどう扱うかはサイトごとに事情がありますが、RSSやSSLといった外部サービスとの連携まで考えると、apex ドメインに一本化する方が無難です。
もし同じように「blog.」「www.」で悩んでいる方がいたら、リライトルールの工夫と .well-known/acme-challenge/ の例外設定を参考にしていただければと思います。