TAG.htaccess
.htaccessを使っての301リダイレクトの方法
最終更新日:
.htaccessから301リダイレクトをする方法をメモ
目次
特定のページだけを301リダイレクト
特定のページだけを301リダイレクトする場合は
.htaccessに
redirect 301 /sample/page.html http://www.yahoo.co.jp redirect 301 /page.html http://www.yahoo.co.jp
のように記述します。
※上記は
/sample/page.htmlにアクセスされたらhttp://www.yahoo.co.jpに飛ばす
/page.htmlにアクセスされたらhttp://www.yahoo.co.jpに飛ばす
といった感じです。
ドメイン自体のの301リダイレクト
サイトのドメインを移転したとき等には
RewriteEngine On RewriteCond %{http_host} ^www.sample.com RewriteRule ^(.*) http://www.sample2.com/$1 [R=301,L]
のように記述します。
※上記は、
www.sample.com に来たアクセスを www.sample2.com に飛ばす
(mod_rewriteがサーバにインストールされている必要があります)
特定のディレクトリ内を新ドメインにリダイレクト
たとえば、
http://old.com/abc/
というabcフォルダ内だけを一式新ドメインの
http://new.com/
というドメインに301リダイレクトしたい場合は、
Redirect permanent /abc/ http://new.com/
としてあげると、一括で301リダイレクトできるので便利です。
※ファイルの構成が同じ場合のみおすすめ
パラメータ付きURLの301リダイレクト
同じドメインで
http://redirect.com/abc/?abc=123456
のような?以降のパラメータ付きURLを
http://redirect.com/abc/
にリダイレクトしたい場合
RewriteEngine on RewriteCond %{REQUEST_URI} abc/ RewriteCond %{QUERY_STRING} ^abc=123456$ RewriteRule ^(.*)$ /abc/? [R=301,L]
という感じでリダイレクトできます。
RewriteCond %{REQUEST_URI} abc/
の部分でパラメータより前の部分のパス。
RewriteCond %{QUERY_STRING} ^abc=123456$
の部分でパラメータを指定します。
httpからhttpsへの301リダイレクト
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
さくらサーバー等、一部サーバーでは記述が違いますが、
大体はこちらでOK。