FC2ブログ「検索結果ページ」URL形式をサーバー側で再転送
FC2ブログからWordPress検索結果ページに対してURL転送を行う場合には、
metaタグまたはJavaScriptにて転送を行います。
検索結果ページはFC2ブログ側でクエリパラメータ部分を書き換えて転送を行うか、
移転先サーバー側でパラメータを変更するかのどちらかになります。
ここではWordPressサーバー側でパラメータの書き換えを行う例をご紹介します。
FC2ブログ「検索結果ページ」URL形式をサーバー側で再転送
FC2ブログの検索結果ページから、
metaタグやJavaScriptを利用して移転先ドメインへアクセスを流せば、
サーバー側で検索結果ページを表示することができます。
FC2ブログの検索結果ページではURLクエリパラメータに対して、
「?q=keyword」といった「q」が採用されています。
かたやWordPress側では「?s=keyword」といった「s」が採用されています。
そうした差異を考慮したURL転送例は以下でご紹介しています。
さて、ここではFC2ブログからURL形式を変更せず、
そのまま「?q=keyword」形式でアクセスを転送してきた際の例でご紹介します。
以下のような転送例です。
このURL形式の違いをサーバー側でURLの再転送を行います。
転送例 | ?q=xxx ⇒ ?s=xxx URL置換 |
?s=xxx URL置換なし(記述不要) |
---|---|---|
Redirect | 非対応 | /?s=FC2 |
RedirectPermanent | 非対応 | /?s=FC2 |
Redirect Match | 非対応 | /?s=FC2 |
mod_rewrite | /?q=FC2 | /?s=FC2 |
Redirect
RedirectPermanent / RedirectTemp
Redirect Match
Redirect, RedirectPermanent / RedirectTemp, Redirect Matchによる
URL転送を行う場合、クエリ文字列を利用した転送は利用できません。
厳密にはクエリ文字列を引き継ぐことは可能ですが、
今回のようなクエリ文字列の「q」を「s」に置換するようなことはできません。
この3つのディレクティブを利用したクエリ文字列を含むURL転送は現実的ではありません。
この場合には、FC2ブログ側で転送先URLの指定を
metaタグにて「http://url-html.rensrv.com/?s=FC2」のように変更してから、
転送することで対応が行えます。
しかし、このように転送を行った場合には、
既にWordPressの検索結果ページのURL形式に変換済みになります。
よって、再転送は不要となります。
検索結果ページのURL転送において、
Redirect, RedirectPermanent / RedirectTemp, Redirect Matchの利用シーンはありません。
mod_rewrite
さて、次にmod_rewriteを利用したURLの再転送ですが、
この場合、FC2ブログからURL転送を行う際に、
クエリ文字列の「q」を「s」に置換することなく、
そのまま「http://fwding.blog.fc2.com/?q=FC2」を
「http://url-html.rensrv.com/?q=FC2」としてURLを転送します。
これはFC2ブログにJavaScriptによるURL転送を設定した場合の
URL転送時に移転先サーバーに要求されるURL形式です。
クエリパラメータの「q」をmod_rewriteによって「s」に変換します。
クエリパラメータのURL置換を.htaccessで行うには以下のように記載します。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} ^q=(.*)$ RewriteRule ^ http://url-html.rensrv.com/?s=%1 [R=302,L] </IfModule> |
これによって、
「http://url-html.rensrv.com/?q=FC2」へアクセスした際には、
以下のように動作します。
RewriteCond %{QUERY_STRING} ^q=(.*)$
RewriteRule ^ http://url-html.rensrv.com/?s=%1 [R=302,L]
RewriteCond行の%{QUERY_STRING}には、
要求URLのクエリパラメータ文字列「q=FC2」が取得できます。
そのクエリパラメータ文字列を「^q=(.*)$」という正規表現と比較しています。
「(.*)」は、クエリ文字列の「q=」以降の部分を示しています。
「.*」にて任意の1文字の0回以上の繰り返しとして表現し、
この場合「FC2」という文字列とマッチングします。
「()」括弧で括ることで、この「FC2」という文字列を置換後URLに挿入することができます。
RewriteCondで括弧指定した部分を挿入するには、
RewriteRule 側で「%」記号を利用します。この場合「%1」を示しています。
この「%1」部分にクエリ文字列から取得した「FC2」という値が渡されます。
結果、転送先URLは「http://url-html.rensrv.com/?s=FC2」となります。
FC2ブログから転送されたクエリパラメータを含むURLを、
移転先サーバーで再転送を行うサンプルは以下で確認できます。
すぐに転送され以下のURLにページが遷移します。
http://url-html.rensrv.com/?q=FC2
複数のキーワードクエリ文字列を含むURL転送
ここまでは単一のキーワードを含むクエリパラメータURLの例でしたが、
念のため複数のクエリパラメータを含むURLもチェックしておきます。
以下でご紹介しています。
クエリ文字列を含むURL転送について
クエリ文字列を含むURL転送は慣れていれば特に迷うことはありませんが、
いざ、設定してみるとうまくいかないこともあるでしょう。
そんな時には、以下でさまざまなパターンをご紹介しています。
併せてお読み頂けると理解が深まるかと思います。
URL転送が思うように動作しない場合
こうしたURL転送がうまく動作しない場合には、
以下で今一度、理解を深めておいた方がいいと思う点をご紹介しています。
お時間がおありでしたらお読みいただけると幸いです。
さいごに
検索結果ページ形式のURLは実際インデックスされていても、
アクセスが多く得られることはないでしょう。
FC2ブログからのURL転送時に神経質になる必要は少ないと思いますが、
既存のコンテンツを有効に転送するという意味で、
保険として転送を行っておくといいでしょう。
WordPressはWordPress Foundation の登録商標(第5049965号)です。
WordPressロゴ、アイコンその他のマーク等はWordPress Foundation の商標であり、
WordPress Foundation の著作物です。
WordPress.comはWordPress Foundation が管理運営を行うドメインならびにサービスの名称です。
WordPress.com、WordPress.net、WordPress.org、WordPress.tv、
WordPressFoundation.orgはWordPress Foundationが
管理運営を行なう正式なトップレベルドメインであるとともに、
WordPress Foundationが運営を行うサービスの名称です。
wordpressはFree Software Foundation, Inc.によってGPL2+でライセンスされています。
FC2はFC2, Inc.の商標であり、FC2ブログはFC2, Inc.のサービス名称です。
FC2ロゴ、アイコンその他のマーク等はFC2, Inc.の商標であり、FC2, Inc.の著作物です。
公開日: