ITTI STAFF
BLOG

イッティWEBスタッフの制作ブログ

【基本Tips】htaccessリダイレクトの書き方

ドメインやURLの変更で利用するリダイレクトの基本とテンプレートです

htaccessとは

ウェブサーバの設定を簡易的にできるファイルのことです。

ウェブサーバの設定をいじるにはターミナルでコマンドを入力しておこなうため、サーバ管理者以外の人にはハードルが高い作業になります。

そこで「htaccess」です。

htaccessファイルに命令文を書くと、サーバが命令文にしたがって処理してくれます。

htaccessファイルはSEOの作業でも使われるため、ホームページの制作や運営には必ず使われます。

.htaccessファイルが使えるサーバ

htaccessのファイル名は「.htaccess」となります。.htaccessファイルをサーバにアップロードすることで機能します。

htaccessファイルは多くのウェブサーバで使えますが、Nginxを利用しているサーバではhtaccessファイルは利用できません

htaccessツール

htaccessの命令文を書くのが大変な時はツールを使う方法があります。
下記のツールは使いやすくお薦めです。

リダイレクトの基本

リダイレクトとは「Aページ」にアクセスしたユーザーを「Bページ」に飛ばすことです。

ホームページやページのURLが変更された時や、PCサイトとスマフォサイトを振り分ける時にリダイレクトが使われます。

リダイレクトの重要性とメリット

リダイレクトには下記のような重要性やメリットがあります。

  • URLが変わっても、ブックマークしているユーザーからのアクセスや、リンク先からのアクセスも可能となる。
  • URLが変わってもGoogleの評価を引き継ぐことができます。
  • 「wwwのあり・なし」や「URLの最後が/、/index.html」などを統一することができる。
    URLを完全に統一することで、ドメインやページの評価が分散されなくなります。またアクセス解析も分かりやすくなります。

昔はリダイレクトを使ってSEO効果を高めるグレーなテクニックが流行りましたが、今では使われることがありません。

リダイレクトの種類

リダイレクトで最も利用されるのが「301」と「302」です。
他にも303や307などもありますが、一般的に使われるのは301と302です。

  • 301リダイレクト(恒久的)
    ホームページやURLが変わった時に使われます
  • 302リダイレクト(一時的)
    PCとスマフォサイトを振り分ける時に使われます

リダイレクトの書き方とテンプレート

ドメインの変更や、ページのURL変更などで使われるリダイレクトのテンプレート集です。

ドメイン変更によるリダイレクト

古いドメインから新しいドメインへのリダイレクトさせます。
リダイレクトは301リダイレクトを利用します。

設定条件
1.古いドメインを新しいドメインに変更
2.下層ページのURLは変わらない

.htaccess
RewriteEngine On
RewriteCond %{http_host} ^www.old.com
RewriteRule ^(.*) http://www.new.com/$1 [R=301,L]

「old.com」にはドメイン、「new.com」には新しいドメインを記述します。

もっと簡単に書くと下記になります。

.htaccess
RewriteEngine On
Redirect permanent / https://www.new.com/

ディレクトリが変更した場合のリダイレクト

「domain.com/aa/page.html」を「domain.com/bb/page.html」に変更する場合です。

.htaccess
RewriteEngine on
RewriteRule ^aa(.*)$ /bb$1 [R=301,L]

ページのURLが変更した時のリダイレクト

ページのURLを変えた時や、ページを統合した時などに利用されます。

「domain.com/old.html」を「domain.com/new.html」に変更する場合は下記になります。

.htaccess
RewriteEngine on
RewriteRule ^old.html$ /new.html [R=301,L]

URLが大幅に変わる

ドメイン、ディレクトリ、ページ全てが変わる場合は下記になります。

.htaccess
RewriteEngine on
RewriteRule https://www.old.com/old/old.html https://www.new.com/new/new.html [R=301,L]

//下記の方法でも可能
RewirteEngine on
Redirect permanent https://www.old.com/old/old.html https://www.new.com/new/new.html

リダイレクトから特定のディレクトリを除外する

特定のディレクトリだけリダイレクトから除外する方法です。

サンプルではディレクトリ「bbb」をリダイレクトの対象から除外しています。

.htaccess
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !(^/bbb/)
RewriteRule ^$ http:www.aaa.com [R=301,L]

SEOで使われるリダイレクト

SEOではURLのばらつきがマイナス要因となります。アクセスデータの数値にも影響するため、リダイレクトでURLを統一させます。

URLにwwwありのリダイレクト

ドメイン「https://aaa.com」にアクセスしても「https://www.aaa.com」にリダイレクトさせます。

wwwが有りでも無しでもアクセスできる場合、2つのURLが存在することになります。URLを統一することでSEOにもドメインの評価が上がります。

下記は「WWWあり」でURLを統一する方法です。

WWWあり
RewriteEngine on
RewriteCond %{HTTP_HOST} ^aaa\.com$
RewriteRule ^(.*)$ https://www.aaa.com/$1 [R=301,L]

URLにwwwなしのリダイレクト

ドメインをwwwなしの「http://aaa.com」に統一させるためのリダイレクトになります。

WWWなし
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.aaa\.com$
RewriteRule ^(.*)$ https://aaa.com/$1 [R=301,L]

URLの最後を統一するためのリダイレクト

URLの最後が下記のように統一されていない場合があります。

  1. http://aaa.com/aaa/index.html
  2. http://aaa.com/aaa/
  3. http://aaa.com/aaa

1と2・3は別のURLとして認識されます。
2と3は同一のURLとして認識されます。
このままではアクセスデータにばらつきが出てしまい、SEOとしてもマイナスとなるためリダイレクトで統一します。

下記は最後に「/」で終わるhtaccessです。

.htaccess
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://domein.com/$1 [R=301,L]

下記はドメインの最後を「index.html」で統一する方法です。

.htaccess
RewriteEngine on
RewriteRule ^$ /index.html [R=301,L]

SSL導入で、httpをhttpsにリダイレクトする

URLを「http」から「https」にリダイレクトします。

RewriteEngine on
RewriteCond %{ HTTPS} off
RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{REQUEST_URI} [R=301,L]

デバイスによる振り分け

PCサイトとスマートフォンサイトを別のURLで運営している場合に利用されるリダイレクトです。

PC、スマートフォンサイトの振り分け

サンプルではスマートフォンでアクセスすると「/sp/」ディレクトリにリダイレクトします。

.htaccess

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !/sp/
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android.*Mobile|Windows.\ Phone)
RewriteRule ^(.*)$ sp/$1 [R]

RewriteCond %{REQUEST_URI} /sp/
RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android.*Mobile|Windows.\ Phone)
RewriteRule ^sp/(.*)$ $1 [R]

nginxによるhtaccess

nginxではhtaccessファイルが利用できません。nginxのconfigファイルを編集することになります。

htaccessファイルをnginx用に変換してくれるツールがあります。
ただ、完全には変換できない場合もあります。

新しい記事

新宿のWEB制作会社イッティ

新宿のWEB制作会社イッティ