AWS LightSailのWordPressで運用していたサイトを確認したところ、Google検索結果にて、ドメイン名とIPアドレスそれぞれのアドレスでインデックスが作成されていた。
しかも当然というか、IPアドレス直から飛ぶインデックスについてはSSL証明書エラーが表示されてしまう。
対策としては、IPアドレス直でアクセスされた場合にはドメイン名に301リダイレクトしてやればよい。
ちなみに301リダイレクトは「正しい住所はこっちですよー」という意味で、サイトの引っ越し時などにも使われる。
手順1. Apacheのhtaccess.confを編集する
ファイルは以下のパスに配置されている。
/opt/bitnami/apps/wordpress/conf
この配下にある「htaccess.conf」の末尾に、以下のような設定を追記する。
ここでは、IPアドレスを「123.123.234.234」 ドメイン名を「www.sample.net」と仮定する。
※事前にファイルはコピーしてバックアップしておくこと!
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^123\.123\.234\.234 RewriteRule ^(.*)$ https://www.sample.net/$1 [R=301,L] </IfModule>
別のドメイン名アクセスされるケースもまとめて制御したい場合は、以下のようにORで接続することもできる。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^sample\.net [OR] RewriteCond %{HTTP_HOST} ^sa\.sample\.net [OR] RewriteCond %{HTTP_HOST} ^123\.123\.234\.234 RewriteRule ^(.*)$ https://www.sample.net/$1 [R=301,L] </IfModule>
手順2. Apacheを再起動
SSHで接続し、以下のコマンドを実行する。
sudo /opt/bitnami/ctlscript.sh restart apache
手順3. リダイレクトされることを確認
IPアドレスでアクセスし、正しいURLにリダイレクトされることを確認する。
なお、正しい301リダイレクトを確認する場合、以下のサイトでチェックするのがオススメ。