リダイレクトについて
2020-03-02
URLのリダイレクト(転送)については、いくつか方法がありますが、今回は下記について少し記載しておきます。
・.htaccessへの記述
・metaタグへの記述
・JavaScriptへの記述
.htaccessへの記述について
■ ページ単位での設定
1 2 |
RewriteEngine on RewriteRule ^○○.html$ https://www.●●.com/▲▲.html [L,R=301] |
■ ディレクトリでの設定
※/ディレクトリ名1/から/ディレクトリ名2/への転送という設定になります。
1 2 |
RewriteEngine on RewriteRule ^ディレクトリ名1(.*)$ /ディレクトリ名2$1 [L,R=301] |
■ URLでの設定
サイトのリニューアル等でドメイン等の変更をすることになった場合など
1 2 3 |
RewriteEngine On RewriteCond %{http_host} ^www.旧URL.com RewriteRule ^(.*) https://www.新URL.com/$1 [R=301,L] |
■URLの正規化
1 2 3 |
RewriteEngine on RewriteCond %{ HTTP_HOST} ^●●●\.com RewriteRule ^(.*)$ https://www.●●●.com/$1 [L,R=301] |
1 2 3 |
RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ https://●●●.com/$1 [L,R=301] |
■httpsへの転送
1 2 3 |
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{REQUEST_URI} [L,R=301] |
Xserverでは、2行目の部分は、
RewriteCond %{HTTPS} !on
とするようです。(3行目の[L, R=301]部分も違います)
1 2 3 |
RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
metaタグへの記述について
サーバーでの設定ができない場合、metaタグへ記述する方法があります。
meta refreshは<head>〜</head>タグ内に記述し、「x秒後に別サイトへ移動します。」といった場合によく用いられています。
1 |
<meta http-equiv=”refresh” content=”5;URL=’http://www.example.com/'” /> |
上記の記述の場合は、5秒後に転送することになります。
JavaScriptによる記述について
こちらもサーバーでの設定ができない場合に、用いられる方法になります。
1 2 3 4 5 6 7 8 |
<script type="text/javascript" language="javascript"> <!-- setTimeout("redirect()", 3000); function redirect(){ location.href = "http://example.com"; } // --> </script> |
上記の場合は、3秒後に転送することのなります。
これらの各記述については、サーバーの環境など状況によって対応できる内容も異なると思いますので、お気をつけください。