(mod_rewrite)FC2ブログ「記事」URL再転送
FC2ブログからWordPressの各記事に対してURL転送を行う際に
一旦サーバーへ転送を行った後のWordPress形式URLへ置換する
Redirectディレクティブを利用した記述例についてご紹介します。
.htaccessによるURL転送方法(mod_rewrite)
.htaccessによってURLの転送(置換)を行う際には、
様々な記述方法が利用できます。
ここではFC2ブログ形式のURLから移転先のドメイン名のみを変更し、
一旦移転先のサーバーへ転送を行うことを想定しています。
FC2の記事(個別投稿)のURLを、
WordPressで利用されるURL形式に置換する例をご紹介します。
ただ、個別記事は基本的に1対1のURL対応関係がありますので、
特別な条件指定などの必要はありません。
ここでは、以下のURLによってFC2ブログからmetaタグ転送が行われたURLを、
WordPressの各パーマリンク形式のURLに置き換える例をご紹介します。
以下はそれぞれの転送パターンの動作確認環境です。
転送例/パーマリンク | デフォルト | 日付と投稿名 | 数字ベース | 投稿名 | カスタム構造 |
---|---|---|---|---|---|
Redirect | blog-entry-101.html | blog-entry-102.html | blog-entry-103.html | blog-entry-104.html | blog-entry-105.html |
RedirectPermanent | blog-entry-106.html | blog-entry-107.html | blog-entry-108.html | blog-entry-109.html | blog-entry-110.html |
Redirect Match | blog-entry-111.html | blog-entry-112.html | blog-entry-113.html | blog-entry-114.html | blog-entry-115.html |
mod_rewrite | blog-entry-116.html | blog-entry-117.html | blog-entry-118.html | blog-entry-119.html | blog-entry-120.html |
置き換える先のURLの例はここでは外部のサイトを指定して例示しますが、
通常は同じドメイン(移行先のWordPressのドメイン)を指定することになります。
※例示においてはWordPressのパーマリンク設定は1サイト内で1設定の為です。
mod_rewrite
mod_rewriteを利用したURL転送(置換)によって、
URL形式を変換する例をご紹介します。
サンプルパターンではmod_rewriteである必要はないのですが、
あくまでもサンプルとしてご紹介します。
パーマリンク設定 | 転送元先 | 検証用転送先URL |
---|---|---|
デフォルト | 転送元→ | http://post-mr-fc2.freeblg.info/blog-entry-116.html |
→転送先 | http://url-default.rensrv.com/?p=18 | |
日付と投稿名 | 転送元→ | http://post-mr-fc2.freeblg.info/blog-entry-117.html |
→転送先 | http://url-monthpost.rensrv.com/2014/12/117-redirect-datepost/ | |
数字ベース | 転送元→ | http://post-mr-fc2.freeblg.info/blog-entry-118.html |
→転送先 | http://url-unmbase.rensrv.com/archives/7 | |
投稿名 | 転送元→ | http://post-mr-fc2.freeblg.info/blog-entry-119.html |
→転送先 | http://url-post.rensrv.com/119-mod_rewrite-post/ | |
カスタム構造 | 転送元→ | http://post-mr-fc2.freeblg.info/blog-entry-120.html |
→転送先 | http://url-html.rensrv.com/120-mod_rewrite.html |
その他の記述例については以下でご紹介しています。
デフォルト
パーマリンクがデフォルト設定のURLへ
転送を行う場合のサンプルURLは以下です。
すぐに転送され以下のURLにページが遷移します。
http://url-default.rensrv.com/?p=18
.htaccess記述例
mod_rewriteを利用したURL転送例は以下のようになります。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-entry-116\.html$ RewriteRule ^.*$ http://url-default.rensrv.com/?p=18 [R=301,L] </IfModule> |
日付と投稿名
パーマリンクがデフォルト設定のURLへ
転送を行う場合のサンプルURLは以下です。
すぐに転送され以下のURLにページが遷移します。
http://url-monthpost.rensrv.com/2014/12/117-redirect-datepost/
.htaccess記述例
mod_rewriteを利用したURL転送例は以下のようになります。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-entry-117\.html$ RewriteRule ^.*$ http://url-monthpost.rensrv.com/2014/12/117-redirect-datepost/ [R=301,L] </IfModule> |
数字ベース
パーマリンクがデフォルト設定のURLへ
転送を行う場合のサンプルURLは以下です。
すぐに転送され以下のURLにページが遷移します。
http://url-unmbase.rensrv.com/archives/7
.htaccess記述例
mod_rewriteを利用したURL転送例は以下のようになります。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-entry-118\.html$ RewriteRule ^.*$ http://url-unmbase.rensrv.com/archives/7 [R=301,L] </IfModule> |
投稿名
パーマリンクがデフォルト設定のURLへ
転送を行う場合のサンプルURLは以下です。
すぐに転送され以下のURLにページが遷移します。
http://url-post.rensrv.com/119-mod_rewrite-post/
.htaccess記述例
mod_rewriteを利用したURL転送例は以下のようになります。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-entry-119\.html$ RewriteRule ^.*$ http://url-post.rensrv.com/119-mod_rewrite-post/ [R=301,L] </IfModule> |
カスタム構造
パーマリンクがデフォルト設定のURLへ
転送を行う場合のサンプルURLは以下です。
すぐに転送され以下のURLにページが遷移します。
http://url-html.rensrv.com/120-mod_rewrite.html
.htaccess記述例
mod_rewriteを利用したURL転送例は以下のようになります。
1 2 3 4 5 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-entry-120\.html$ RewriteRule ^.*$ http://url-html.rensrv.com/120-mod_rewrite.html [R=301,L] </IfModule> |
一括して記述も可能
上記の各転送パターンは以下のように個々に記述することもできますが、
まとめて記述することもできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-entry-116\.html$ RewriteRule ^.*$ http://url-default.rensrv.com/?p=18 [R=301,L] </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-entry-117\.html$ RewriteRule ^.*$ http://url-monthpost.rensrv.com/2014/12/117-redirect-datepost/ [R=301,L] </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-entry-118\.html$ RewriteRule ^.*$ http://url-unmbase.rensrv.com/archives/7 [R=301,L] </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-entry-119\.html$ RewriteRule ^.*$ http://url-post.rensrv.com/119-mod_rewrite-post/ [R=301,L] </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-entry-120\.html$ RewriteRule ^.*$ http://url-html.rensrv.com/120-mod_rewrite.html [R=301,L] </IfModule> |
[R=301,L] として「L」を記述していることから、
条件に一致してURLの置換が行われた場合には、
その先の処理は行われず終了します。
条件、置換ルール・・・と繰り返して記述することで、
一括りに記述することも可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/blog-entry-116\.html$ RewriteRule ^.*$ http://url-default.rensrv.com/?p=18 [R=301,L] RewriteCond %{REQUEST_URI} ^/blog-entry-117\.html$ RewriteRule ^.*$ http://url-monthpost.rensrv.com/2014/12/117-redirect-datepost/ [R=301,L] RewriteCond %{REQUEST_URI} ^/blog-entry-118\.html$ RewriteRule ^.*$ http://url-unmbase.rensrv.com/archives/7 [R=301,L] RewriteCond %{REQUEST_URI} ^/blog-entry-119\.html$ RewriteRule ^.*$ http://url-post.rensrv.com/119-mod_rewrite-post/ [R=301,L] RewriteCond %{REQUEST_URI} ^/blog-entry-120\.html$ RewriteRule ^.*$ http://url-html.rensrv.com/120-mod_rewrite.html [R=301,L] </IfModule> |
ここでは、1対1対応の例ですので、
特に要求URLから値を利用したURL転送を行っていませんが、
先ほどの年月別アーカイブのURLを転送する際に利用した、
Redirect MatchのURL置換を、mod_rewriteで記述すると以下のようになります。
mod_rewriteによる変数利用の例
以下は、FC2ブログ形式の年月別アーカイブページを、
WordPress形式の年月アーカイブページのURLに転送する例です。
転送元URL: http://fwding.blog.fc2.com/blog-date-20141127.html
転送先URL: http://post-mr-fc2.freeblg.info/2014/11/27
※末尾にスラッシュがないのは、パーマリンク設定で「.html」を固定文字として入力し、
静的URL形式を採用している環境の為です。
以下は実際の動作例です。
すぐにURLが転送され以下のURLが表示されます。
このページはWordPressの 2014/11/25 に投稿された投稿のアーカイブページです。
http://fc2.freeblg.info/2014/11/25
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 |
さいごに
記事の1対1対応のような場合は、
mod_rewriteを利用するほどのものではありません。
しかし他の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.の著作物です。
公開日:
最終更新日:2014/12/22