WEBサイトのサブドメインを変更したい場合、DNSの設定を変更するだけで完了します。
しかし、検索エンジンや被リンクのキャッシュから変更前のドメインでWEBサイトにアクセスされる場合もあります。
これらに対応するため変更前のドメインから変更後のドメインにリダイレクトできるようにする必要があります。
今回はApacheを使用して行います。
下記の例は「www.nekono.tokyo」から「protocol.nekono.tokyo」に変更したものになります。
まずは変更前と変更後のドメインについてルートディレクトリを設定します。
$ vi /etc/httpd/conf/httpd.conf
# Ensure that Apache listens on port 80 Listen 80 NameVirtualhost *:443 # Listen for virtual host requests on all IP addresses NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /var/www/html ServerName www.nekono.tokyo </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/wordpress ServerName protocol.nekono.tokyo </VirtualHost>
$ vi /var/www/html/.htaccess
続いてリダイレクト用の.htaccessファイルを配置します。
なお、.htaccessファイルはセキュリティ面でリスクがあるので扱い(適切なパーミッションを付ける等)には注意してください。
RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.nekono\.tokyo)(:80)? [NC] RewriteRule ^(.*) http://protocol.nekono.tokyo/$1 [R=301,L]
これで古いドメインにアクセスされた場合に新しいドメインに切り替えることができます。
また、レスポンスコード301でリダイレクトすることで検索エンジンにWEBサイトの変更を伝えることができます。
実際に3日くらいするとGoogleの検索結果に新しいドメインが出るようになりました。