====== リダイレクト(.htaccess) ======
いわゆる301リダイレクトについて記述します。ウェブサイトの移転やページのURL変更時に「.htaccess」にリダイレクト(転送)を記述することで旧サイト(ページ)から新サイト(ページ)に転送します。また検索エンジンの評価も引き継がれます。
===== よく使う301リダイレクト =====
==== ページ単位の転送 ====
「aaa.html」から「bbb.html」へ転送
RewriteEngine on
RewriteRule ^aaa.html$ https://www.example.com/bbb.html [L,R=301]
または
RewriteEngine on
Redirect permanent /aaa.html /bbb.html
\\
==== ディレクトリ単位の転送 ====
「/aaa/」から「/bbb/」へ転送
RewriteEngine on
RewriteRule ^aaa(.*)$ /bbb$1 [L,R=301]
または
RewriteEngine on
Redirect permanent /aaa/ /bbb/
\\
==== ドメイン単位の転送 ====
「https://www.aaa.com」から「https://www.bbb.com」へ転送
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.aaa.com
RewriteRule ^(.*)https://www.bbb.com/$1 [R=301,L]
または
RewriteEngine on
Redirect permanent / https://www.bbb.com
※ 「Redirect permanent」で記述したほうが分かりやすいかと思われる。サイト移転をGoogleに手続きするとき事前に旧(ドメイン)サイトから新ドメイン(サイト)へのリダイレクト処理をしなければ受け付けてもらえないが「Redirect permanent」で記述して普通に通った。
\\
==== 複合 ====
「https://www.aaa.com/aaa/aaa.html」から「https://www.bbb.com/bbb/bbb.html」への転送
RewriteEngine on
RewriteRule / https://www.aaa.com/aaa/aaa.html https://www.bbb.com/bbb/bbb.html [R=301,L]
または
RewriteEngine on
Redirect permanent https://www.aaa.com/aaa/aaa.html https://www.bbb.com/bbb/bbb.html
\\
\\
----
==== URLの正規化 ====
「www.なし」を「www.あり」へ転送
RewriteEngine on
RewriteCond %{HTTP_HOST} ^aaa\.com
RewriteRule ^(.*)https://www.aaa.com/$1 [L,R=301]
「index.htmlあり」を「index.htmlなし」へ転送
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://aaa.com/$1 [L,R=301]
サブドメインからルートドメインへ転送
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub\.aaa\.com$
RewriteRule (.*)https://aaa.com/$1 [R=301,L]
\\
==== SSL化 ====
「http://www.aaa.com」から「https://www.aaa.com」へ転送
RewriteEngine on
RewriteCond %{HTTPS}off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
\\
==== エラーページへ転送 ====
エラーページ「error.html」へ転送
ErrorDocument 404 /error.html