(mod_rewrite)FC2ブログ「タグ」URL形式を再転送
FC2ブログからWordPressのカテゴリページに対してURL転送を行う際に
一旦サーバーへ転送を行った後のWordPress形式URLへ置換する
mod_rewriteを利用した記述例についてご紹介します。
.htaccessによるURL転送方法(mod_rewrite)
mod_rewriteを利用したFC2ブログ形式のタグアーカイブページの転送について、
ここではFC2ブログ形式のURLから移転先のドメイン名のみを変更し、
一旦移転先のサーバーへ転送を行うことを想定しています。
mod_rewriteを利用した場合には、
クエリ文字列を利用した条件判定を問題なく利用することができます。
しかしながら、
タグアーカイブページのクエリ文字列によって与えられたURLパラメータは、
WordPress内部による自動URL転送を利用することができます。
ただし、この転送方法を利用した転送を行うと、
タグ名が日本語の場合WordPressのタグページのスラッグも
日本語になってしまいます。
そうしたスラッグの変更を伴う場合には、
mod_rewriteによるURL転送を利用することになります。
mod_rewrite
mod_rewriteを利用したURL転送(置換)によって、
URL形式を変換する例をご紹介します。
移転元、移転先のURLマッピング
タグURL形式 | 転送元先 | 検証用転送先URL |
---|---|---|
英名→英名 | 転送元→ | http://url-html.rensrv.com/?tag=tag331 (WordPres自動転送) |
→転送先 | http://url-html.rensrv.com/tag/tag331 | |
英名→日本語名 | 転送元→ | http://tag-mr-fc2.freeblg.info/?tag=tag332 (mod_rewrite利用) |
→転送先 | http://url-html.rensrv.com/tag/タグ332 | |
日本語→英名 | 転送元→ | http://tag-mr-fc2.freeblg.info/?tag=タグ333 (mod_rewrite利用) |
→転送先 | http://url-html.rensrv.com/tag/tag333 | |
日本語→日本語名 | 転送元→ | http://url-html.rensrv.com/?tag=タグ334 (WordPres自動転送) |
→転送先 | http://url-html.rensrv.com/tag/タグ334 |
英語名→英語名へ
FC2ブログ形式のタグURLをWordPressの英語名タグアーカイブURLへ
転送を行う場合のサンプルURLは以下です。
この場合、直接WordPressへクエリパラメータを渡し、
自動リダイレクトさせています。
すぐに転送され以下のURLにページが遷移します。
英語名→日本語名へ
FC2ブログ形式のタグURLをWordPressの日本語タグアーカイブURLへ
転送を行う場合のサンプルURLは以下です。
すぐに転送され以下のURLにページが遷移します。
.htaccess記述例
mod_rewriteを利用したURL転送例は以下のようになります。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} ^tag=tag332$ RewriteRule ^ http://url-html.rensrv.com/tag/タグ332? [R=302,L] </IfModule> |
このURL転送の記述を補足します。
RewriteCond %{QUERY_STRING} ^tag=tag332$
上記では、サーバー変数「%{QUERY_STRING}」が「tag=tag332」という
値である場合のみ処理することを明記しています。
URLで「http://tag-mr-fc2.freeblg.info/?tag=tag332」へアクセスがあった場合、
「?」以降の「tag=tag332」という値が、%{QUERY_STRING}に設定されています。
「^」は文字列の開始位置を示します。
「$」は文字列の終了位置を示します。
よって、クエリ文字列が「tag=tag332」のみで前後に他の文字がないことを示します。
RewriteRule ^ http://url-html.rensrv.com/tag/タグ332? [R=302,L]
上記では、実際の置換ルールを明記しています。
「^」は上記のとおり、開始記号であり「開始記号があれば対象とする」を意味しています。
よって、RewriteCondの条件にマッチしたすべてのアクセスが対象になります。
「http://url-html.rensrv.com/tag/タグ332」は転送先のURLを示しています。
「?」は、通常要求されたURLに対して付与されたクエリ文字列は、
転送先URLの末尾に自動的に付与されて転送されます。
その、自動的な付与をキャンセルする意味があります。
詳細は以下でご紹介しています。
「R=302」はリダイレクトをステータスコード302(一時的な転送)で転送することを示しています。
通常は、301(恒久転送)を利用しますが、
ここでは例示するだけですので、302とさせて頂いています。
「L」はこの条件にマッチしたら、以後の処理は行わないという、
処理の終了を意味しています。
これによって、URL転送が行われています。
日本語名→英語名へ
FC2ブログ形式のタグURLをWordPressの英語名タグアーカイブURLへ
転送を行う場合のサンプルURLは以下です。
すぐに転送され以下のURLにページが遷移します。
.htaccess記述例
Redirectディレクティブを利用したURL転送例は以下のようになります。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule %{QUERY_STRING} ^tag=タグ333$ RewriteRule ^ http://url-html.rensrv.com/tag/tag333? [R=302,L] </IfModule> |
このURL転送の記述を補足します。
RewriteCond %{QUERY_STRING} ^tag=タグ333$
上記では、サーバー変数「%{QUERY_STRING}」が「tag=tag332」という
値である場合のみ処理することを明記しています。
URLで「http://tag-mr-fc2.freeblg.info/?tag=tag332」へアクセスがあった場合、
「?」以降の「tag=tag332」という値が、%{QUERY_STRING}に設定されています。
「^」は文字列の開始位置を示します。
「$」は文字列の終了位置を示します。
よって、クエリ文字列が「tag=tag332」のみで前後に他の文字がないことを示します。
RewriteRule ^ http://url-html.rensrv.com/tag/tag333? [R=302,L]
上記では、実際の置換ルールを明記しています。
「^」は上記のとおり、開始記号であり「開始記号があれば対象とする」を意味しています。
よって、RewriteCondの条件にマッチしたすべてのアクセスが対象になります。
「http://url-html.rensrv.com/tag/tag333」は転送先のURLを示しています。
「?」は、通常要求されたURLに対して付与されたクエリ文字列は、
転送先URLの末尾に自動的に付与されて転送されます。
その、自動的な付与をキャンセルする意味があります。
詳細は以下でご紹介しています。
「R=302」はリダイレクトをステータスコード302(一時的な転送)で転送することを示しています。
通常は、301(恒久転送)を利用しますが、
ここでは例示するだけですので、302とさせて頂いています。
「L」はこの条件にマッチしたら、以後の処理は行わないという、
処理の終了を意味しています。
これによって、URL転送が行われています。
日本語名→日本語名へ
FC2ブログ形式のタグURLをWordPressの日本語名タグアーカイブURLへ
転送を行う場合のサンプルURLは以下です。
この場合、直接WordPressへクエリパラメータを渡し、
自動リダイレクトさせています。
すぐに転送され以下のURLにページが遷移します。
URL転送が思うように動作しない場合
こうしたURL転送がうまく動作しない場合には、
以下で今一度、理解を深めておいた方がいいと思う点をご紹介しています。
お時間がおありでしたらお読みいただけると幸いです。
さいごに
タグアーカイブ形式のURLでは、
タグページを表示するURLパラメータがFC2ブログとWordPressで一致している為、
単純にURLをそのまま渡すことで、
タグ名と一致したスラッグを用意することで転送が完了します。
簡単な転送方法ですが、
個人的にはスラッグ名が日本語なのが好みではないので、
私だったらmod_rewriteを利用していると思います。
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.の著作物です。
公開日:
最終更新日:2014/12/22