こんにちは!たく丸です。
今回はhtaccessのリダイレクトについてご紹介いたします。
そもそも.htaccessって何??
.htaccess とは、Webサーバの動作を制御するための設定ファイルです。
.htaccessによって指定したページやディレクトリへのアクセスを制御したり、URLに/index.htmlをつけないようにしたり、404ページをカスタマイズすることもできます。
公開前のサイトなどには閲覧を制限(BASIC認証)し、パスワードを知ってる人にしか見れないようにしたりもできます。
.htaccessを設定することで、サイトそのもののセキュリティの強化やパフォーマンスの向上に是非ともお勧めします。
htaccessのリダイレクトの記述について
それでは、転送処理に必要な記述をご紹介していきます。
1.ドメイン変更によるのリダイレクト(ディレクトリ変更なしの場合)
「http://before.com/」にアクセスがあった場合に「http://after.com/」へ301リダイレクト
RewriteEngine On
RewriteCond %{http_host} ^before.com
RewriteRule ^(.*) http://after.com/$1 [R=301,L]
2.ページのURL変更に伴うリダイレクト(同一ドメイン)
「http://before.com/aaa.html」にアクセスがあった場合に「http://before.com/bbb.html」へ301リダイレクト
RewriteEngine on
RewriteRule ^aaa.html$ http://before.com/bbb.html [L,R=301]
3.ディレクトリ単位でのリダイレクト(同一ドメイン)
「http://before.com/old/」にアクセスがあった場合に「http://before.com/new/」へ301リダイレクト
RewriteEngine on
RewriteRule ^old(.*)$ /new$1 [R=301,L]
4.一部のディレクトリをリダイレクトから除外する
全体的にリダイレクトする際に、特定のディレクトリのみリダイレクト対象から外します。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !(^/none/)
RewriteRule ^$ http://after.com/ [R=301,L]
※http://after.com/へリダイレクトするが/none/というディレクトリのファイルにアクセスした際には、リダイレクトが行われない。
5.URLを統一させる
SEOを考慮して、「www」ありURL、「www」なしURLはどちら一つにまとめる方が評価が分散せずSEO的に良いということもあるので書きまとめた記述です。
wwwありに統一
RewriteEngine on
RewriteCond %{HTTP_HOST} ^before\.com$
RewriteRule ^(.*)$ https://www.before.com/$1 [R=301,L]
wwwなしに統一
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.before\.com$
RewriteRule ^(.*)$ https://before.com/$1 [R=301,L]
6.SSL化に伴い、「https://」にリダイレクトさせる
RewriteEngine on
RewriteCond %{ HTTPS} off
RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{REQUEST_URI} [R=301,L]
まとめ
以上日頃からよく使うリダイレクトについて書いてみました。
リダイレクトは今まで培ってきたSEO評価を左右する処理ですので、とっても大事な作業です。.htaccessが使える環境であればそこまで難しい作業でもないので、是非とも.htaccessを使い、リダイレクトしましょう!
他にもhtaccessを用いたリダイレクトや便利な使い方はいっぱいあるので、別の記事で紹介していこうと思います!