Categories: WEBlog

.htaccessでのリダイレクト書き方まとめ

こんにちは!たく丸です。

今回は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を用いたリダイレクトや便利な使い方はいっぱいあるので、別の記事で紹介していこうと思います!

admin