2019/6/8:更新
この度、ドメインの変更をしてサイト移転をしました。
surprisedblog.com → www.surprisedblog.com
ドメイン変更に伴いいくつかの対応が必要で、いろいろ調べ物をしていたらこんなサイトに出会いました。
madewithlove | htaccess tester:https://htaccess.madewithlove.be/
はてなブックマークなどの対応
はてなブックマークなどのリンクでは、前回のドメインが登録されているので存在しないページにアクセスすることになってしまいます。
そこで、surprisedblog.comのドメインに対するアクセスをwww.surprisedblog.comにする必要がありました。(wwwなしからwwwあり)
(私はエックスサーバーにドメインを登録していて、はてなブログへのアクセスはエックスサーバーのDNSで飛ばしています。)
wwwなし→wwwありへの設定は簡単で、某サイトからコピペで設定しました。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^surprisedblog\.com
RewriteRule ^(.*) http://www.surprisedblog.com/$1 [R=301,L]
しかし、htaccessを編集してから、適用されるまで時間がかかることや、事前知識が全くないことから上手くできているのか心配でした。
(キャッシュの削除で、適用されるまでの時間がかかることへの対応ができました。)
ですが、ほどなくしてはてなブックマークから前ドメイン時の記事に飛んだところ、現ドメインへアクセスしたので成功したことを確認しました。
これで、はてなブックマークなどのリンクへの対応ができ、一安心しました。
ところが、GoogleAdsenseのads.txtの対応が必要でした。
Google AdSenseのads.txtの対応
リンクの対応だけだと、wwwなしからwwwありへのリダイレクトをしているので、無条件にすべてのアクセス(現ドメインへの)がはてなブログに飛ばされてしまいます。
GoogleAdsenseのads.txtへの対応もするには、surprisedblog.com/ads.txtへのアクセス以外をwwwありにする必要がありました。
RewriteEngine On
RewriteCond %{REQUEST_URI} !(^/ads.txt)
RewriteRule ^(.*)$ https://www.surprisedblog.com/$1 [R=301,L]
RewriteRule ^(.*)$ https://surprisedblog.com/$1 [R=301,L]
訂正:2019/6/8
RewriteEngine On
RewriteCond %{REQUEST_URI} !(^/ads.txt)
RewriteRule ^(.*)$ https://www.surprisedblog.com/$1 [R=301,L]
RewriteRule ^(.*) http://www.surprisedblog.com/$1 [R=301,L]
この4行目のせいでループを発生させていました。テスターによる結果では目的のURLにリダイレクトしていました(実際はリダイレクトしていない)。最初に、最終行なしでテストしたのですが、テスト結果が出なかったためにエラーかと思って、最終的に上記の構文をhtaccessに設定してしまいました。初歩的なミスでした。
最終的に、上記の設定でリダイレクトができるとわかったのですが、反映に時間がかかることや、思ったようにリダイレクトできない場合に何が間違っているのかなどがわからなかったため苦労しました。
上記の書き方でできるとわかったのは、madewithloveというサイトでhtaccessのテストができたからです。
madewithlove | htaccess testerとの出会い
様々なサイトをみて、特定ページ以外のリダイレクトの仕方が書いてあったのですが、それを設定してもうまく動作しませんでした。
そこで、シュミレーションができないかと、検索キーワードにシュミレーションを入れてみたところhtaccess tester が引っ掛かりました。
https://madewithlove.be/:made with loveというサイトのhtaccess testerを使って、上手く動作しないhtaccessの設定をテストしたところ、全角でスペースを入力していたことが原因だとわかりました(笑)
htaccess編集でサイトを色々見ましたが、このサイトについて取り上げているところはありませんでした。とても便利なので、同じ境遇の方がいれば利用してみるのもいいかもしれません。ただ、どの環境にも対応しているわけではありません。
ちなみに、ほかにも便利なサービスだったりがあるみたいです。
さらに、ちなみにですが、ads.txtページの表示には成功していません。
ルートドメインにファイルを追加できない場合
GoogleのQ&A