ホーム > ネット > .htaccess 使い方 ページ URL 変更 URL変更 リダイレクト
目次 | 元のページ 前のページ | 次のページ サイトマップ | ページEND

.htaccess 使い方 ページ URL 変更 URL変更 リダイレクト


.htaccess 使い方 ページ URL 変更 URL変更 リダイレクト



「.htaccess」ファイルに、URLのリダイレクト設定を記述しておくと、旧URLでアクセスしてきた閲覧者を、自動的に新URLページに誘導できます

サイトを変更した場合、あるいは、同一サイト内でディレクトリ名を変更した場合、ページURLを変更した場合等、それぞれの変更に対応でき、サイト、ディレクトリ、ページのお引越し等の際、自動的に引越し先へ閲覧者を誘導することができます




特定のページURLから 別のページURLへの リダイレクト (ページURLの変更)



「.htaccess」 ファイルに、下記の記述を入れておきますと、ページのURLを変更した際等、旧ページ(特定のページURL)にアクセスされた際、自動的に新しいページURLに転送します

新ページは、旧ページと同一サイト内であっても、別サイトでも可能で、「.htaccess」 ファイルは、旧ページのあるサイトのルートディレクトリに設置します


複数ページを統合して、同一ページにアクセスさせたい場合 、「.html」から「.php」などへの変更 、リニューアルによるページ構成の変更 、キャンペーンなど期間限定ページの終了 の場合等で活用できます



特定のページURLから 別のページURLへの リダイレクト (Redirect 使用)



旧ページにアクセスがあった際、新ページにリダイレクト(転送)します


記述場所
.htaccess
構文
Redirect permanent /旧ディレクトリ名/旧ページ名 http://新ドメイン名/新ディレクトリ名/新ページ名
記述例
Redirect permanent /D1/P1.html http://abhp.net/D2/P2.html
説明
Redirect permanent /旧ディレクトリ名/旧ページ名 http://新ドメイン名/新ディレクトリ名/新ページ名
旧ページにアクセスがあった際、新ページにリダイレクト(転送)します
(改行コード)
最終行は必ず改行し、改行コードのみの空行とします



特定のページURLから 別のページURLへの リダイレクト (Rewrite 使用)



旧ページ名にアクセスがあった際、そのURLを http://新ドメイン名/新ディレクトリ名/新ページ名に書き変えることにより、新ページにリダイレクト(転送)します


記述場所
.htaccess
構文
RewriteEngine on
RewriteBase /
RewriteRule ^旧ページ名$ http://新ドメイン名/新ディレクトリ名/新ページ名 [R=301,L]
記述例
RewriteEngine on
RewriteBase /
RewriteRule ^OldP1.html$ http://abhp.net/NewD1/NewP1.html [R=301,L]
説明
RewriteEngine on
Rewrite機能をON(URLの書き換えを可能)にします
RewriteBase /
URLの書き換えのベースをルートディレクトリ(/)とします
RewriteRule ^旧ページ名$ http://新ドメイン名/新ディレクトリ名/新ページ名 [R=301,L]
URLの書き換え内容を指定します
旧ページ名にアクセスがあった際、そのURLをhttp://新ドメイン名/新ディレクトリ名/新ページ名に書き変えます
(改行コード)
最終行は必ず改行し、改行コードのみの空行とします




複数ページをまとめて 特定のページURLへ リダイレクト (Rewrite 使用)



類似する複数の旧ページ名にアクセスがあった際、そのURLを http://新ドメイン名/新ディレクトリ名/新ページ名に書き変えることにより、特定の新ページにリダイレクト(転送)します


記述場所
.htaccess
構文
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} 共通文字列(.*)\.html
RewriteRule ^(.*)$ http://転送先URL [R=301,L]
記述例
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} Doc_(.*)\.html
RewriteRule ^(.*)$ http://転送先URL [R=301,L]
説明
RewriteEngine on
Rewrite機能をON(URLの書き換えを可能)にします
RewriteBase /
URLの書き換えのベースをルートディレクトリ(/)とします
RewriteCond %{REQUEST_URI} 共通文字列(.*)\.html
ファイル名の先頭が「共通文字列」で始まるページ(htmlファイル)にアクセスがあった場合、
続く 「RewriteRule」 文の命令を実行します
RewriteRule ^(.*)$ http://転送先URL [R=301,L]
URLの書き換え内容を指定します
前文の 「RewriteCond」 条件に一致するアクセスがあった場合、
そのURLをhttp://新ドメイン名/新ディレクトリ名/新ページ名に書き変えます
(改行コード)
最終行は必ず改行し、改行コードのみの空行とします




複数ページをまとめて それぞれに対応するページURLへ リダイレクト (Rewrite 使用)



ページ名(ファイル名)を変更した際、変更ページ名に規則性がある場合、その規則に合致する複数の旧ページ名へのアクセスを、その規則に沿って URL を書き変えて、新しいページにリダイレクト(転送)させることができます


書式 RewriteRule 条件パターン 置換文字列 [フラグ]
記述例 RewriteEngine on
RewriteRule dic/Dic_(.*) http://abhp.net/alacarte/Alacarte_$1 [R=301,L]
説明 RewriteEngine on
Rewrite機能をON(URLの書き換えを可能)にします
RewriteRule dic/Dic_(.*) http://abhp.net/alacarte/Alacarte_$1 [R=301,L]
ブラウザからアクセスされた URL文字列の中の、ディレクトリ名 「dic」 で、ファイル名の先頭に 「Dic_」 の付いている URL文字列を、ディレクトリ名 「alacarte」 で、ファイル名の先頭に 「Alacarte_」 の付いている URL文字列に書き変えます

(.*)は、()で囲うことによって文字列のグルーピング化、後方参照可能な変数として扱うことができるようにする指定で、中身は、任意の文字列 (.) が、いくつあってもよい (*) という意味になり、「Dic_」 の後ろに続く文字列を変数 ($1) として扱うことができます

RewriteRule 文中、複数の()がある場合、先頭から順に、$1、$2、$3 ・・・ として、参照できます
RewriteCond 文中の()変数を扱いたい場合は、%1、%2、%3 ・・・ で参照します

[R=301] は、ステータスコードを恒久的に転送するという意味の 301 (恒久的な移動)に設定します

[L] は、Rewrite機能によるURL変換を終了します (後のルールが適用されなくなります)
(改行コード)
最終行は必ず改行し、改行コードのみの空行とします




「http」 と 「https」 それぞれ切り分けて リダイレクト (Rewrite 使用)



「http」 と 「https」 ともに使用しているサイトの場合、「http」 アクセスと 「https」 アクセス、それぞれを切り分けて、新ページにリダイレクトします


記述場所
.htaccess
構文
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteRule ^旧ディレクトリ名/旧ページ名 http://新ドメイン名/新ディレクトリ名/新ページ名 [R=301,L]
RewriteCond %{SERVER_PORT} 443
RewriteRule ^旧ディレクトリ名/旧ページ名 https://新ドメイン名/新ディレクトリ名/新ページ名 [R=301,L]
記述例
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteCond %{SERVER_PORT} 80
RewriteRule ^D1/P1.html http://abhp.net/D2/P2.html [R=301,L]
RewriteCond %{SERVER_PORT} 443
RewriteRule ^D1/P1.html https://abhp.net/D2/P2.html [R=301,L]
説明
RewriteEngine on
Rewrite機能をON(URLの書き換えを可能)にします
RewriteBase /
URLの書き換えのベースをルートディレクトリ(/)とします
RewriteCond %{SERVER_PORT} 80
条件指定 : ポート番号 「80」 (http) アクセス時のみリダイレクトする
RewriteRule ^旧ディレクトリ名/旧ページ名 http://新ドメイン名/新ディレクトリ名/新ページ名 [R=301,L]
URLの書き換え内容を指定します
旧ディレクトリ名/旧ページ名へのアクセス時、新ドメイン名/新ディレクトリ名の新ページ名(.htmlファイル等)に、「http」転送します
RewriteCond %{SERVER_PORT} 443
条件指定 : ポート番号 「443」 (https) アクセス時のみリダイレクトする
RewriteRule ^旧ディレクトリ名/旧ページ名 https://新ドメイン名/新ディレクトリ名/新ページ名 [R=301,L]
URLの書き換え内容を指定します
旧ディレクトリ名/旧ページ名へのアクセス時、新ドメイン名/新ディレクトリ名の新ページ名(.htmlファイル等)に、「https」転送します
(改行コード)
最終行は必ず改行し、改行コードのみの空行とします





301 リダイレクト (恒久的な移動) と 302 リダイレクト (一時的な移動)



記述場所
.htaccess
記述内容
恒久的に移転する場合 (301リダイレクト) 301リダイレクトは、恒久的に移動するという意味で、ドメインを変更したり、ページのアドレスを変更した場合等で固定的に変更する場合に使用します
Redirect permanent 「転送元」 「転送先」
一時的に移転する場合 (302リダイレクト) 302リダイレクトは、一時的に移動するという意味で、期間限定のイベントやキャンペーンなどで一時的にリダイレクトしたい時等に使用します
Redirect temp 「転送元」 「転送先」

どちらを使用しても、アクセスされた瞬間に自動転送され、転送元のURLがブラウザの履歴に残らない点も同じで、両者の違いは、(ブラウザなどに)通知される転送理由(HTTPステータスコード)が、前者では「恒久的な移動」(301リダイレクト)で、後者では「一時的な移動」(302リダイレクト)だという点のみです

ブラウザの動作はどちらも同じですが、検索サイトのデータベースへの登録には影響する可能性があり、「ずっと移転する」(=転送先URLを登録して欲しい)なら前者を、「今だけ移転する」(=転送元URLを登録して欲しい)なら後者を使います



※. <meta>タグを利用して、各ファイル内にリダイレクト設定を記述する方法につきましては、「 HTML ファイル名( URL )変更のやり方 」 をご参照下さい (別タブ(ウィンドウ)が開きます)

目次 | 元のページ 前のページ | 次のページ サイトマップ | ページTOP
ホーム > ネット > .htaccess 使い方 ページ URL 変更 URL変更 リダイレクト
   

© 2014 abhp.net All Rights Reserved.

参考情報


htaccess-リダイレクト(サイトの引越し)
.htaccessを使った301リダイレクト記述方法 SEO対策 LYKAONエンジニアブログ
.htaccessを使ったよく使うリダイレクトまとめ | Kana-Lier カナリエ

ページTOP
ページTOP
ページTOP
ページTOP