cman.jphtaccess作成
cman.jp cman.jp > よく使うhtaccess > 解説・自動作成 > リダイレクト_引越し
広告
広告
広告
広告
広告
広告
広告

htaccessによるリダイレクト(サイトの引越し)

htaccessのリダイレクト機能を使用すれば、サーバーの移転やページ構成の変更などを行った後に、元のページへのアクセスを新しいページに自動転送することができます。
また、ステータスを指定することで、検索エンジンに対しても”引越し”の通知を行うことができます。

広告

リダイレクトの作成(生成)

以下の自動作成は機能が限定されています。生成されたhtaccessを加工してご利用ください。

【入力の意味】 サイト全体 を ②「転送先」に ⑤「ステータス」 でリダイレクトする


転送タイプ
help

転送先
://

ステータス
結果表示
「転送元」を入力してください

【注意】生成されたhtaccessは保証しておりません。必ず、動作確認を行ってからご利用ください。

リダイレクトの例

リダイレクト例 目次
(1) サイト全体の移転ドメイン(FQDN)が変わるサイトの引っ越し(移転)
(2) ディレクトリ転送ディレクトリ単位でディレクトリ構造のままリダイレクト
(3) 単画面に転送サイト全体やディレクトリ全体の転送先を1つのページに集約する
(4) 1ページ転送単純に1ページを1ページに転送。ページの集約など
(5) 拡張子転送特定拡張子のみリダイレクトする。画像のみ他のサーバから表示するなど

(1) サイト(ドメイン)の引っ越し

以下のようなケースの場合に、サイト全体をリダイレクト(転送)します。

  • サイトのドメインを変更する
  • レンタルサーバを変更するため、ドメイン部分が変わってしまう
サイト全体のリダイレクト
構文例1 (構文説明
# すべて「http」にリダイレクト
Redirect permanent / http://example.com/
構文例2 (構文説明
# 「http」と「https」を切り分けてリダイレクト
RewriteBase /
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

(2) ディレクトリ単位の引っ越し

以下のようなケースの場合に、ディレクトリ単位のリダイレクト(転送)を使用します。

  • 会社などの組織変更によるサイト構造の見直し
  • サーバ負荷やDISK容量不足により、サーバの分割を行う
  • ディレクトリを単独サーバに移行(ディレクトリのドメイン格上げ・格下げ)
ディレクトリ単位のリダイレクト
構文例1 (構文説明
# すべて「http」にリダイレクト
Redirect permanent /shop/ http://example.com/japan/shop/
構文例2 (構文説明
# 「http」と「https」を切り分けてリダイレクト
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteRule ^shop/(.*)$ http://example.com/sale/shop/$1 [R=301,L]
RewriteCond %{SERVER_PORT} 443
RewriteRule ^shop/(.*)$ https://example.com/sale/shop/$1 [R=301,L]

サイトの閉鎖など、単画面にリダイレクト

以下のようなケースの場合に、サイト全体を単ページにリダイレクト(転送)します。

  • サイトの閉鎖案内
  • サイト全体メンテナンス時の案内
サイト閉鎖のリダイレクト
構文例1 (構文説明
# すべて「http」にリダイレクト
RedirectMatch 301 .* http://example.com/index.html
構文例2 (構文説明
# 「http」と「https」を切り分けてリダイレクト
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ http://example.com/index.html [R=301,L]
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ https://example.com/index.html [R=301,L]

1ページ単位のリダイレクト

以下のようなケースの場合に、ページ単位のリダイレクト(転送)を使用します。

  • 複数ページを統合
  • 「.html」から「.php」などへの変更
  • リニューアルによるページ構成の変更
  • キャンペーンなど期間限定ページの終了
ページ単位のリダイレクト
構文例1 (構文説明
# すべて「http」にリダイレクト
Redirect permanent map.html http://www.example.jp/infomation/map/index.html
構文例2 (構文説明
# 「http」と「https」を切り分けてリダイレクト
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteRule ^map.html http://www.example.jp/infomation/map/index.html [R=301,L]
RewriteCond %{SERVER_PORT} 443
RewriteRule ^map.html https://www.example.jp/infomation/map/index.html [R=301,L]

特定ファイル(画像など)のみリダイレクト

以下のようなケースの場合に、特定ファイル(通常は拡張子)のリダイレクト(転送)を使用します。

  • 画像を他のサーバより表示
  • cgiやphpを別サーバで実行
拡張子でリダイレクト
構文例1 (構文説明
# すべて「http」にリダイレクト
RedirectMatch 301 (.*)\.(jpg|jpeg|gif|png)$ http://example.com$1.$2
構文例2 (構文説明
# 「http」と「https」を切り分けてリダイレクト
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)\.(jpg|jpeg|gif|png)$ http://example.com$1.$2 [R=301,L]
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)\.(jpg|jpeg|gif|png)$ https://example.com$1.$2 [R=301,L]

htaccess解説構文

htaccessでリダイレクトを行う場合、以下の3種類が利用されます。用途によって使い分けてください。

構文解説 目次
Redirectリダイレクトの基点を指定した単純なリダイレクト
RedirectMatchリダイレクト対象を正規表現で指定したリダイレクト
Rewrite機能環境変数を利用し複雑な指定ができるリダイレクト
スマートフォン判定などでも利用される
リダイレクト(スマホ,OS,ブラウザ)」をご確認ください

Redirect

リダイレクトの基点を指定して、指定配下のディレクトリ・ページなどすべてを転送対象とします。

Redirect  permanent  /shop/  http://example.com/
+--①--+  +--②---+  +-③-+  +--------④--------+ 
②ステータス

以下の指定が可能です。

「permanent」
301 Moved Permanently (完全に移動した)
「temp」
302 Moved Temporarily (一時的に移動した)
「seeother」
303 See Other (他の場所にある)
「gone」
410 Gone (削除されている)

一般的には、
ページを移動した場合は「permanent」を使用
メンテナンスなどで一時的に移動したときは「temp」を使用

検索エンジンへの影響は下記でご確認ください

③転送元

リダイレクト(転送)する、基点となるサーバ内ディレクトリを指定します。

上記サンプルでは「/shop/」以下すべてのディレクトリ、ページがリダイレクト対象となります。

④転送先

転送先のURLを指定します。
サーバ内のパスではなく「http」「https」から始まるURLで指定します。

上記サンプルの場合「/shop/」が「http://example.com/」に転送されます。

RedirectMatch

正規表現を利用することで、ファイルの種類指定や基点などの条件を指定して、対象のみを転送することができます。

RedirectMatch  301  (.*)\.jpg$  http://example.com$1.jpg
+----①-----+  +②+ +---③---+  +----------④-----------+ 
②ステータス

httpステータスコードを指定します。よく利用されるのは以下となります。

301 : Moved Permanently (完全に移動した)
302 : Moved Temporarily (一時的に移動した)
303 : See Other (他の場所にある)
410 : Gone (削除されている)

一般的には、
ページを移動した場合は「301」を使用
メンテナンスなどで一時的に移動したときは「302」を使用

検索エンジンへの影響は下記でご確認ください

③転送元

リダイレクト(転送)する、条件を正規表現で指定します。

上記サンプルでは「(.*)\.jpg$」を指定し、「.jpg」で終わるファイルを対象としています。

適用範囲は、htaccessファイルを格納したディレクトリ配下すべてとなりますのでご注意ください。

④転送先

転送先のURLを指定します。
サーバ内のパスではなく「http」「https」から始まるURLで指定します。

Rewrite機能

アクセスされたパス以外の条件を参照することもできる。
正規表現を利用することで、ファイルの種類指定や基点などの条件を指定して、対象のみを転送することができます。

RewriteEngine  on
+------①-------+
RewriteBase /
+----②-----+
RewriteCond  %{SERVER_PORT}  80
+-------------③--------------+
RewriteRule  ^(.*)\.(jpg|gif)$  http://example.com$1.$2  [R=301,L]
+---④----+  +------⑤-------+  +---------⑥----------+  +---⑦---+ 

RewriteEngine

Rewrite機能を使用するかの指定を行います。

ON : 使用する
OFF : 使用しない


RewriteBase

「Rewrite機能」のベースパスを指定します。


RewriteCond

「RewriteRule」の実行条件を指定します。

環境変数を使用できるため、多くの要素を判断材料として使用できます。
スマートフォンの判定なども一般的にこの機能が利用されます。

例では「SERVER_PORT」を参照し「80」との一致を判定しています。
→ 80ポートにアクセスがあった(httpで通信)と判断できます。

比較部分(上記サンプルの「80」部分)は正規表現で指定します。


RewriteRule

転送ルールが記載されていることを表します。


転送元

リダイレクト(転送)する、条件を正規表現で指定します。

上記サンプルでは「^(.*)\.(jpg|gif)$」を指定し、「.jpg」または「.gif」で終わるファイルを対象としています。

適用範囲は、htaccessファイルを格納したディレクトリ配下すべてとなりますのでご注意ください。


転送先

転送先のURLを指定します。
サーバ内のパスではなく「http」「https」から始まるURLで指定します。


オプション

オプションを指定します。通常は以下を使用します。

「R」:返却するhttpステータスを指定。「R」のみは302扱いとなります
「F」:条件に該当したら以下のRewriteRuleを無視することを表します

httpステータスコードを指定します。よく利用されるのは以下となります。

301 : Moved Permanently (完全に移動した)
302 : Moved Temporarily (一時的に移動した)
303 : See Other (他の場所にある)
410 : Gone (削除されている)

一般的には、
ページを移動した場合は「301」を使用
メンテナンスなどで一時的に移動したときは「302」を使用

検索エンジンへの影響は下記でご確認ください

検索エンジンへの影響

ステータスコード:301 「permanent」

検索エンジンに、ページが移転したこと知らせることができます。
既にyahooやGoogleなどの検索ページに登録がある場合、検索結果画面でも新しいページへのリンクに切り替わります。(一定時間掛る場合があります)

yahooのヘルプ:「検索結果のURLを変更したい
googleのヘルプ:「サイト移転

ステータスコード:302 「temp」

検索エンジンは、一時的な移転と認識し、検索結果のリンクは切り替えません。

広告
QrCode
このページのURL
スマートフォン・タブレット運営:株式会社シーマン