htaccessのリダイレクト機能を使用すれば、サーバーの移転やページ構成の変更などを行った後に、元のページへのアクセスを新しいページに自動転送することができます。
また、ステータスを指定することで、検索エンジンに対しても”引越し”の通知を行うことができます。
以下の自動作成は機能が限定されています。生成されたhtaccessを加工してご利用ください。
【入力の意味】 サイト全体 を ②「転送先」に ⑤「ステータス」 でリダイレクトする |
||
① 転送タイプ |
||
---|---|---|
④ 転送先 |
:// | |
⑤ ステータス |
【注意】生成されたhtaccessは保証しておりません。必ず、動作確認を行ってからご利用ください。
リダイレクト例 目次 | |
---|---|
(1) サイト全体の移転 | ドメイン(FQDN)が変わるサイトの引っ越し(移転) |
(2) ディレクトリ転送 | ディレクトリ単位でディレクトリ構造のままリダイレクト |
(3) 単画面に転送 | サイト全体やディレクトリ全体の転送先を1つのページに集約する |
(4) 1ページ転送 | 単純に1ページを1ページに転送。ページの集約など |
(5) 拡張子転送 | 特定拡張子のみリダイレクトする。画像のみ他のサーバから表示するなど |
以下のようなケースの場合に、サイト全体をリダイレクト(転送)します。
# すべて「http」にリダイレクト Redirect permanent / http://example.com/
# 「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]
以下のようなケースの場合に、ディレクトリ単位のリダイレクト(転送)を使用します。
# すべて「http」にリダイレクト Redirect permanent /shop/ http://example.com/japan/shop/
# 「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]
以下のようなケースの場合に、サイト全体を単ページにリダイレクト(転送)します。
# すべて「http」にリダイレクト RedirectMatch 301 .* http://example.com/index.html
# 「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]
以下のようなケースの場合に、ページ単位のリダイレクト(転送)を使用します。
# すべて「http」にリダイレクト Redirect permanent map.html http://www.example.jp/infomation/map/index.html
# 「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]
以下のようなケースの場合に、特定ファイル(通常は拡張子)のリダイレクト(転送)を使用します。
# すべて「http」にリダイレクト RedirectMatch 301 (.*)\.(jpg|jpeg|gif|png)$ http://example.com$1.$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でリダイレクトを行う場合、以下の3種類が利用されます。用途によって使い分けてください。
構文解説 目次 | |
---|---|
Redirect | リダイレクトの基点を指定した単純なリダイレクト |
RedirectMatch | リダイレクト対象を正規表現で指定したリダイレクト |
Rewrite機能 | 環境変数を利用し複雑な指定ができるリダイレクト スマートフォン判定などでも利用される 「リダイレクト(スマホ,OS,ブラウザ)」をご確認ください |
リダイレクトの基点を指定して、指定配下のディレクトリ・ページなどすべてを転送対象とします。
Redirect permanent /shop/ http://example.com/ +--①--+ +--②---+ +-③-+ +--------④--------+
②ステータス |
以下の指定が可能です。
一般的には、 検索エンジンへの影響は下記でご確認ください |
---|---|
③転送元 |
リダイレクト(転送)する、基点となるサーバ内ディレクトリを指定します。 上記サンプルでは「/shop/」以下すべてのディレクトリ、ページがリダイレクト対象となります。 |
④転送先 |
転送先のURLを指定します。 上記サンプルの場合「/shop/~」が「http://example.com/~」に転送されます。 |
正規表現を利用することで、ファイルの種類指定や基点などの条件を指定して、対象のみを転送することができます。
RedirectMatch 301 (.*)\.jpg$ http://example.com$1.jpg +----①-----+ +②+ +---③---+ +----------④-----------+
②ステータス |
httpステータスコードを指定します。よく利用されるのは以下となります。 301 : Moved Permanently (完全に移動した) 一般的には、 検索エンジンへの影響は下記でご確認ください |
---|---|
③転送元 |
リダイレクト(転送)する、条件を正規表現で指定します。 上記サンプルでは「(.*)\.jpg$」を指定し、「.jpg」で終わるファイルを対象としています。 適用範囲は、htaccessファイルを格納したディレクトリ配下すべてとなりますのでご注意ください。 |
④転送先 |
転送先のURLを指定します。 |
アクセスされたパス以外の条件を参照することもできる。
正規表現を利用することで、ファイルの種類指定や基点などの条件を指定して、対象のみを転送することができます。
RewriteEngine on +------①-------+ RewriteBase / +----②-----+ RewriteCond %{SERVER_PORT} 80 +-------------③--------------+ RewriteRule ^(.*)\.(jpg|gif)$ http://example.com$1.$2 [R=301,L] +---④----+ +------⑤-------+ +---------⑥----------+ +---⑦---+
① RewriteEngine |
Rewrite機能を使用するかの指定を行います。 ON : 使用する |
---|---|
② RewriteBase |
「Rewrite機能」のベースパスを指定します。 |
③ RewriteCond |
「RewriteRule」の実行条件を指定します。 環境変数を使用できるため、多くの要素を判断材料として使用できます。 例では「SERVER_PORT」を参照し「80」との一致を判定しています。 比較部分(上記サンプルの「80」部分)は正規表現で指定します。 |
④ RewriteRule |
転送ルールが記載されていることを表します。 |
⑤ 転送元 |
リダイレクト(転送)する、条件を正規表現で指定します。 上記サンプルでは「^(.*)\.(jpg|gif)$」を指定し、「.jpg」または「.gif」で終わるファイルを対象としています。 適用範囲は、htaccessファイルを格納したディレクトリ配下すべてとなりますのでご注意ください。 |
⑥ 転送先 |
転送先のURLを指定します。 |
⑦ オプション |
オプションを指定します。通常は以下を使用します。 「R」:返却するhttpステータスを指定。「R」のみは302扱いとなります httpステータスコードを指定します。よく利用されるのは以下となります。 301 : Moved Permanently (完全に移動した) 一般的には、 検索エンジンへの影響は下記でご確認ください |
検索エンジンに、ページが移転したこと知らせることができます。
既にyahooやGoogleなどの検索ページに登録がある場合、検索結果画面でも新しいページへのリンクに切り替わります。(一定時間掛る場合があります)
yahooのヘルプ:「検索結果のURLを変更したい」
googleのヘルプ:「サイト移転」
検索エンジンは、一時的な移転と認識し、検索結果のリンクは切り替えません。