(mod_rewrite)FC2ブログ「カテゴリ」URL再転送
FC2ブログからWordPressのカテゴリページに対してURL転送を行う際に
一旦サーバーへ転送を行った後のWordPress形式URLへ置換する
mod_rewriteを利用した記述例についてご紹介します。
.htaccessによるURL転送方法(mod_rewrite)
.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が正しく認識されない場合があります。
mod_rewrite
mod_rewriteを利用したURL転送(置換)によって、
URL形式を変換する例をご紹介します。
移転元、移転先のURLマッピング
転送先URL形式 | 転送元先 | 検証用転送先URL |
---|---|---|
英名スラッグへ | 転送元→ | http://cat-mr-fc2.freeblg.info/blog-category-231.html |
→転送先 | http://url-html.rensrv.com/category/category231 | |
日本語名スラッグへ | 転送元→ | http://cat-mr-fc2.freeblg.info/blog-category-232.html |
→転送先 | http://url-html.rensrv.com/category/カテゴリ232 |
英名スラッグへ
FC2ブログ形式のURLをWordPressの英名スラッグカテゴリURLへ
転送を行う場合のサンプルURLは以下です。
すぐに転送され以下のURLにページが遷移します。
http://url-html.rensrv.com/category/category231
.htaccess記述例
mod_rewriteを利用したURL転送例は以下のようになります。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-category-231\.html$ RewriteRule ^.*$ http://url-html.rensrv.com/category/category231 [R=301,L] </IfModule> |
日本語名スラッグへ
FC2ブログ形式のURLをWordPressの日本語スラッグカテゴリURLへ
転送を行う場合のサンプルURLは以下です。
すぐに転送され以下のURLにページが遷移します。
http://url-html.rensrv.com/category/カテゴリ232
.htaccess記述例
mod_rewriteを利用したURL転送例は以下のようになります。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-category-232\.html$ RewriteRule ^.*$ http://url-html.rensrv.com/category/カテゴリ232 [R=301,L] </IfModule> |
マッチングを利用したパターン
上記のパターンでは完全にパスの要求が一致している場合の、
転送例ですのでmod_rewriteの便利さを利用していません。
以下のように連番になる部分のURL置換を、
マッチングパターンで行う場合には以下のようにマッチングさせることができます。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-category-99.*\.html$ RewriteRule ^/blog-category-99(.*)\.html$ http://url-html.rensrv.com/category/category99$1 [R=301,L] </IfModule> |
以下のURLはそれぞれ番号に応じて、対象のカテゴリへ転送されます。
転送先のカテゴリアーカイブは、以下のようになります。
このように転送によって要求するパスを条件として、
そのまま置換後のパスに生かすことで、膨大なURL転送を共通コードで行うこともできます。
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 |
さいごに
mod_rewriteによるURL転送は複雑なURL転送を行うことができます。
記述に慣れるまでは思ったように転送がされないことも経験するでしょう。
しかしちゃんとポイントを押えて、記述することで
複雑なものも簡単なものもmod_rewriteによって実現することができるでしょう。
mod_rewriteによるURL転送のポイントなどを、
以下でご紹介しています。
上記のポイントは以下の様々なパターン検証をもとにして作成しています。
mod_rewriteがとっつきにくいようであれば、
パターンマッチングを気軽に利用できる、
Redirect Matchから始めるのもいいでしょう。
パターンマッチングの必要がないURL転送(1対1)であれば、
Redirect、RedirectPermanentなどで転送を行ってもいいと思います。
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