(Redirect Match)FC2ブログ「カテゴリ」URL再転送
FC2ブログからWordPressのカテゴリページに対してURL転送を行う際に
一旦サーバーへ転送を行った後のWordPress形式URLへ置換する
Redirect Matchディレクティブを利用した記述例についてご紹介します。
.htaccessによるURL転送方法(Redirect Match)
.htaccessによってURLの転送(置換)を行う際には、
様々な記述方法が利用できます。
ここではFC2のカテゴリアーカイブのURLを、
WordPressで利用されるURL形式に置換する例をご紹介します。
ここでは、以下のURLによってFC2ブログからmetaタグ転送が行われたURLを、
WordPressの各パーマリンク形式のURLに置き換える例をご紹介します。
転送例 | 英名スラッグへ | 日本語名スラッグへ |
---|---|---|
Redirect | blog-category-201.html | blog-category-202.html |
RedirectPermanent | blog-category-211.html | blog-category-212.html |
Redirect Match | blog-category-221.html | blog-category-222.html |
mod_rewrite | blog-category-231.html | blog-category-232.html |
置き換える先のURLの例はここでは外部のサイトを指定して例示しますが、
通常は移行先のWordPressのドメインを指定することになります。
※例示においては確認用のサイトを利用しています。
文字コード留意点
日本語URLを利用する場合には、
.htaccessファイルの保存時の文字コードを「UTF-8 BOMなし」にて保存します。
SJISなどの文字コードで保存されている場合には、
転送先の日本語URLが正しく認識されない場合があります。
Redirect Match
Redirect Matchを利用したURL転送(置換)によって、
URL形式を変換する例をご紹介します。
移転元、移転先のURLマッピング
転送先URL形式 | 転送元先 | 検証用転送先URL |
---|---|---|
英名スラッグへ | 転送元→ | http://cat-rm-fc2.freeblg.info/blog-category-221.html |
→転送先 | http://url-html.rensrv.com/category/category221 | |
日本語名スラッグへ | 転送元→ | http://cat-rm-fc2.freeblg.info/blog-category-222.html |
→転送先 | http://url-html.rensrv.com/category/カテゴリ222 |
Redirect Matchディレクティブにおいて、ステータスコードを省略した場合には、
「302 Found」が返されて、一時的なURL転送として動作します。
英名スラッグへ
FC2ブログ形式のURLをWordPressの英名スラッグカテゴリURLへ
転送を行う場合のサンプルURLは以下です。
すぐに転送され以下のURLにページが遷移します。
http://url-html.rensrv.com/category/category221
.htaccess記述例
Redirect Matchをを利用したURL転送例は以下のようになります。
1 |
RedirectMatch 302 ^/blog-category-221\.html$ http://url-html.rensrv.com/category/category221 |
日本語名スラッグへ
FC2ブログ形式のURLをWordPressの日本語スラッグカテゴリURLへ
転送を行う場合のサンプルURLは以下です。
すぐに転送され以下のURLにページが遷移します。
http://url-html.rensrv.com/category/カテゴリ222
.htaccess記述例
Redirect Matchディレクティブを利用したURL転送例は以下のようになります。
1 |
RedirectMatch 302 ^/blog-category-222\.html$ http://url-html.rensrv.com/category/カテゴリ222 |
マッチングを利用したパターン
上記のパターンでは完全にパスの要求が一致している場合の、
転送例ですのでRedirect Matchの便利さを利用していません。
以下のように連番になる部分のURL置換を、
マッチングパターンで行う場合には以下のようにマッチングさせることができます。
1 |
RedirectMatch 302 ^/blog-category-98(.*)\.html$ http://url-html.rensrv.com/category/category98$1 |
以下のURLはそれぞれ番号に応じて、対象のカテゴリへ転送されます。
転送先のカテゴリアーカイブは、以下のようになります。
このように転送によって要求するパスを条件として、
そのまま置換後のパスに生かすことで、膨大なURL転送を1行で行うこともできます。
WordPressによる初期設定と共存時の注意
URLの転送を行う場合には、
WordPressでパーマリンク設定を行うと自動的に生成される
.htaccessファイルにURL転送ルールを記述することになりますが、
以下のような初期状態で記述されている内容は、
消さないように注意します。
また「# BEGIN WordPress ~ # END WordPress」までは、
WordPressが削除・更新をしてくる部分なので、この中には記述しないようにします。
個別に追記する場合には、# BEGIN WordPressよりも前の行に、
個別のURL転送を記載するといいでしょう。
1 2 3 4 5 6 7 8 9 10 11 |
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress |
さいごに
Redirect Matchディレクティブを利用したURL転送は、
パターンマッチングによるURL転送を、
簡単な記述によって実現できる便利な機能です。
要求されたURLを元にして転送先を判定するだけで
済むようなURL形式が要求される場合にはとても気軽に利用できます。
その他、クエリ文字列などを元にして転送先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