URL転送パターンの記述例と動作例
URLの転送を行うには様々な方法を利用することができます。
それぞれのURL転送の記述方法と実際の転送動作、
転送時のレスポンスコードの例をご紹介します。
.htaccessによるURL転送
.htaccessなどの利用をサーバーが認めている場合には、
まずこの転送方法を利用するのが常です。
.htaccessを利用した場合のURL転送にはいろいろな方法がありますので、
適宜、用途にあった方法を採用されるといいでしょう。
詳細は以下でご紹介しています。
どのURL転送で行っても意図したステータスコードを返すことができますし、
転送の目的に応じて使い分けるといいと思います。
- Redirect
転送時のステータスコードを指定した単純一致による転送を行う場合に便利です。 - RedirectPermanent (恒久転送のみ)
常に恒久的な転送を単純一致によって行う場合に便利です。 - RedirectTemp (一時転送のみ)
常に一時的な転送を単純一致によって行う場合に便利です。 - Redirect Match
転送時のステータスコードを指定しかつ、
正規表現を用いた一致条件を指定する場合に便利なディレクティブです。 - mod_rewrite
転送時のステータスコードの指定や、
正規表現による一致だけでなく、その他のアクセス条件(IPやホスト名など)によって、
転送の要否などを細かく制御するような転送に便利です。
各転送例と利用できる機能
ディレクティブ | ステータスコード | 正規表現 | 置換条件 |
---|---|---|---|
Redirect | 指定可 | - | - |
RedirectPermanent | 301固定 | - | - |
RedirectTemp | 302固定 | - | - |
Redirect Match | 指定可 | 〇 | - |
mod_rewrite | 指定可 | 〇 | 〇 |
※「置換条件」とは正規表現の条件指定ではなく、
正規表現による置換判定を行うか否かを判断するその他の条件が指定可能なことを示す。
metaタグによるURL転送
metaタグによるURL転送は、
.htaccessなどを利用した301転送が利用できない場合の第一代替案です。
公式にはmetaタグによるURL転送が、
サイト評価を引き継ぐとは発表はされていないようですが、
概ね、Googleは引き継いでくれているようです。
代替案としては次にこの方法を検討します。
記述に利用できる機能
サイトなどによってはphpが利用できたり独自の変数などが利用できる場合もありますが、
metaタグとしてURL転送を行うには基本1対1のURL対応しかできません。
プログラムなどで動的にmetaタグが出力できる場合を除いて、
転送したいコンテンツの数だけタグを設定する必要があります。
記述 | ステータスコード | 正規表現 | 置換条件 |
---|---|---|---|
meta http-equiv=”refresh” | 200 | - | - |
JavaScriptによるURL転送
JavaScriptによるURL転送は、
metaタグによるURL転送が行えない(<head>~</head>領域に出力できない場合も含む)場合に、
最終手段としてページの転送(遷移)させるために利用できる方法です。
プログラムで記述しますので、自由にページの遷移を記述できますが、
そもそもJavaScriptを実行不可にしているブラウザでは、機能しません。
またサイトの評価の引継ぎを期待することはほぼできないでしょう。
記述に利用できる機能
JavaScriptによる記述ですのでプログラムの書き方次第で、
好きにURL転送は行えますが、あまり難解な転送をおこなうメリットはないでしょう。
正規表現も利用できますが、
301転送ではない以上、神経質になってもあまり効果がないと思います。
単純にドメイン名置換のみでアクセスを流し、
自身のサーバー側で301再転送したほうがいいと私は思います。
記述 | ステータスコード | 正規表現 | 置換条件 |
---|---|---|---|
location.href = “”; | 200 | RegExp | 記述次第 |
JavaScriptで正規表現を利用する場合には、以下が参考になります。
さいごに
無料ブログなどの自分に管理権限がない環境で、
URLの転送をおこなう場合には、metaタグが利用できればまずいい方で、
多くの無料ブログではmetaタグが利用できない場合が多くあります。
そんな場合にはせめてJavaScriptによる転送で悪あがきすることになりますが、
どこまで既存のサイトを有効に移行できるかは未知数です。
無料ブログなどではサイトが早く認識されて、
アクセスが得られるまでの期間が短くなりがちなため、
安易に手を出しがちではありますが、
いざ、移転となった時にこうした不便を強いられる覚悟はしておく必要があります。
せめてmetaタグの転送を利用することができる環境かは、
事前に確認しておく必要があります。
Apache,Apache Hadoop,Apache Subversion,Hadoop,HDFS,HBase,Hive,Mahout,Pigは、
Apache Software Foundationの米国およびその他の国における登録商標または商標です。
ApacheソフトウェアはApache Software License (原文)および
Apache License, 2.0 (原文)に基づきOpen Source Initiativeに承認されライセンスされています。
公開日:
最終更新日:2014/12/07