Paroday

Paroday:ニュースやアニメのレビュー、FC2ブログのテンプレート・プラグインなどを配信しています。

もしかして Parody ではありませんか? yes

新規FC2ブログの仕様変更 アドレス id.blog.fc2.com

 FC2ブログは次のようにブログサーバ番号(122)が必ずついていましたが、

http://paro2day.blog122.fc2.com/

 2011年1月23日頃から、FC2ブログを開設すると、サーバ番号のないFC2ブログを作成することが可能になりました。 http://ptemplate.blog.fc2.com

http://ptemplate.blog.fc2.com/

 サーバ番号はブログを開設する際に一定間隔(およそ30分~)で変わり、気に入らないサーバ番号を与えられたときは、時間をおいてアクセスすれば、変更することが可能です。

 このサーバ候補の中に、blog95・blog2などと混じって、番号なしのblogというサーバが現れることがあります。

blogサーバ

URLは http://ブログID.blog.fc2.com/ になります。

 このときにブログを作成すると、番号なしのFC2ブログを作成できます。ただし、データの入力に時間をかけていると、送信の段階で番号付きのサーバに変わってしまうことがあるかもしれません。

 この変更で気になるのが、仕様変更で現在のサーバ番号のついたアドレスが変わってしまうのではないかということですが、サーバ番号を抜いてアクセスすると、ヘッダのlocationでサーバ番号付きアドレスに移動するようになっています。

http://paro2day.blog.fc2.com/ → http://paro2day.blog122.fc2.com/

 今のところは番号付きがメインアドレスです。変更されると、FC2以外の他所のサービスに登録しているアドレスにも影響がでてくるので、たぶんないと信じたいと思います。ただ、最近追加されたblog150と151のサーバについては、番号なしに移行していますが、先月末の時点においてはアドレスが二つ共存していただけかもしれません。

 ユーザスクリプトやフィルタなどにおけるFC2ブログの正規表現は次のようなものに変更します。

http:\/\/[0-9a-z]{2,20}\.blog[0-9]*\.fc2\.com
http:\/\/[0-9a-z]+\.blog[0-9]*\.fc2\.com
http:\/\/\w+\.blog\d*\.fc2\.com

 関連記事 : 新blogサーバ 共有テンプレートの仕様、utf-8などの改変について

サーバ番号なしのFC2ブログと番号ありのFC2ブログの違い

文字コード

 ヘッダの文字コードが euc-jp から、 utf-8 に変更されます。

 したがって、eucで保存したJavaScriptなどのファイルは、中身によってはcharset属性を追加しないと文字化けすることがあるかもしれません。

<script type="text/javascript" charset="euc-jp" src="hoge.js"></script>

 共有テンプレートでコメント装飾を設置している場合は、<%template_comment_js> に変更します。次のようなコードは変更が必要です。

<script type="text/javascript" src="http://blog2.fc2.com/load.js"></script>

<script type="text/javascript" src="http://blog<%server_no>.fc2.com/load.js"></script>

 上記いずれかが使用されている場合は、次のどちらかに変更します。基本的にcharsetは不要です。番号ありでは『euc-jp』、番号なしでは『utf-8』のファイルが呼び出されます。

<script type="text/javascript" src="<%template_comment_js>"></script>
<script type="text/javascript" src="<%server_url>load.js"></script>

 データのバックアップで作成されるテキストファイルも『utf-8』になりますが、『euc-jp』でもインポートには問題ないようです。

管理ページのアドレス

 これまでの管理ページはサーバ番号をベースとしたアドレスでしたが、

http://blog122.fc2.com/control.php

 番号のないブログの管理ページは control.blog で統一されます。複数のタブで同時に番号なしのブログを管理することはできなくなります。FC2ブログの管理ページ向けのユーザスクリプトなどは control.blog にも対応する必要があります。

http://control.blog.fc2.com/control.php

■新しく記事を書くページ

http://blog122.fc2.com/control.php?mode=editor&process=new  // 番号あり
http://control.blog.fc2.com/control.php?mode=editor&process=new  // 番号なし

 ここで問題になってくるのが、テンプレートで使われる 所属しているサーバーURLを表示する変数『<%server_url>』 と 所属しているサーバーNoを表示する変数『<%server_no>』 の出力です。それぞれ次のようになります。

【番号有】 http://id.blog122.fc2.com/
<%server_url> = http://blog122.fc2.com/
<%server_no> = 122

【番号無】 http://id.blog.fc2.com/
<%server_url> = http://control.blog.fc2.com/
<%server_no> = 2

 番号なしは <%server_no> が『2』になります。blog2.fc2.comと同じ値を返します。これは何らかの番号を返さないと、不都合が生じるときがあるからだと思います。

 <%server_url> はそのまま利用できます。例えば、次のような管理ページへのリンクは正常に機能します。
[番号有] <%server_url>control.php → http://blog122.fc2.com/control.php
[番号無] <%server_url>control.php → http://control.blog.fc2.com/control.php

 問題は <%server_no> を使って管理ページへのリンクを行っている場合ですが、番号なしでも最終的には control.blog.fc2.com にジャンプするので問題ありません。

[番号有] http://blog<%server_no>.fc2.com/control.php → http://blog122.fc2.com/control.php
[番号無] http://blog<%server_no>.fc2.com/control.php → http://blog2.fc2.com/control.php
 → http://control.blog.fc2.com/control.php

 ですが、管理ページへのリンクが機能するのはログインページ(control.php)のみです。例えば、新規記事作成・記事編集ページなどへのリンクは正常に機能しません。クエリをつけるとログインページに飛ばされます。

[番号無]
http://blog<%server_no>.fc2.com/control.php?mode=editor&process=load&eno=<%topentry_no>
 → http://fc2.com/login.php?ref=blog // NG!

 したがって、記事編集ページへのリンクは次のようにしないといけません。

<a href="<%server_url>control.php?mode=editor&amp;process=load&amp;eno=<%topentry_no>" title="<%topentry_title>">Edit</a>

テンプレートのCSS保存先 <%css_link> 変数の出力

 番号あり(blog132~136を除く)はブログページをベースとしたアドレスに保存されていましたが、

http://userid.blog122.fc2.com/template/name/style.css

 番号のないブログはファイルアップロードのサーバに保存されます。『123ab』の部分は適当な値が入ります。『47』は変化するファイルサーバです。アカマイ機能を利用していない場合はサーバ番号の後に『-origin.fc2.com』がつきます。

http://blog-imgs-47.fc2.com/u/s/e/userid/css/123ab.css

 このファイルはテンプレートを更新する度に新しく作成されます。ただし、テンプレートの再適用や名前、HTMLまたはスタイルシートに変更のない場合は作成されません。

// 初期
http://blog-imgs-47.fc2.com/u/s/e/userid/css/123ab.css
// スタイルシートを変更して更新すると新たに作成
http://blog-imgs-47.fc2.com/u/s/e/userid/css/51acb.css
// HTMLを変更して更新すると新たに作成
http://blog-imgs-47.fc2.com/u/s/e/userid/css/408ea.css
// 名前を変更して更新すると新たに作成
http://blog-imgs-47.fc2.com/u/s/e/userid/css/a6310.css
// 変更せず更新
http://blog-imgs-47.fc2.com/u/s/e/userid/css/a6310.css

 この仕様だと、テンプレートを更新する度にブログのファイル容量が消費されていくような気がしますが、ファイルアップロードページの容量には加算されません。

 テンプレートをプレビューした際は、管理サーバ内にcssファイルが作られます。

http://control.blog.fc2.com/temp/00/css_D3eWNo.css

 別の問題として、ブログは閲覧できるのにスタイルシートを読み込めない場合があります。番号ありでは基本的にブログの表示に問題がないかぎり、スタイルシートも表示されます。しかし、番号なしでは該当するファイルサーバがメンテナンスや障害でアクセス不可になると、ブログは表示できるのにスタイルシートにアクセスできない状態になります。

共有テンプレート

【2月15日追記】
多言語に公開しなくても共有テンプレートページに公開されるようになりました。

 強制的に多言語用テンプレートになります。したがって、共有テンプレートを多言語用に公開していない場合は、サーバ番号なしの共有テンプレートページには表示されません

 『blog.fc2.com』サーバでも共有テンプレートを表示する場合は
 多言語用に公開しますか?: 公開する を指定します。

 HTMLとスタイルシートにあるすべてのcharsetはダウンロード時に『euc-jp』から『utf-8』に自動で変換されます。

HTML
<meta http-equiv="content-type" content="text/html; charset=euc-jp" />
↓ダウンロード
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
CSS
@charset "ecu-jp";
↓ダウンロード
@charset "utf-8";

 2011年2月7日現在、この変換は強力です。すべての euc-jp を変換するため、ファイルのアドレスなどもすべて utf-8 にします。文字化けのために euc-jp を指定しても、 utf-8 になるため、ファイルは最初から utf-8 で保存して、charset="utf-8" とした方がいいかもしれません。

http://blog-imgs-37.fc2.com/p/a/r/paro2day/euc-jp01.gif
↓
http://blog-imgs-37.fc2.com/p/a/r/paro2day/utf-801.gif" />

<script type="text/javascript" charset="euc-jp">
↓
<script type="text/javascript" charset="utf-8">

var hoge = 'euc-jp';
↓
var hoge = 'utf-8';

 その他にもいろいろと改変するので、共有テンプレートは多言語のみ一時停止して、自分のサイトで配布した方がいいかもしれません。

備考 - 変更された理由

 主に次のことが関連しているかもしれません。

 「utf-8使いたい」の一声ですべてのFC2ブログをutf-8にすることはないと思いますが、不具合などは別として、利用者の声が聞けるFC2リクエストがあるので、そちらに誘導して、検討・見送り等を出した方がいいような気がします。

『utf-8(番号なし)』と『euc-jp(番号あり)』の選択の可能性
■新規ブログ開設時にどちらか選べるようになる。
■環境設定から切り替えが可能になる。『utf-8』を選択するとブログアドレスがサーバ番号なしになり、従来の http://id.blog122.fc2.com にアクセスすると、ヘッダで http://id.blog.fc2.com に飛ばされる。『euc-jp』にするとこれまで通り番号ありのアドレスになる。というのはアドレスがころころ変わったり、重複の問題がでてきそうです。レスポンスヘッダの文字コードのみ変更。


  • 【更新履歴】
  • 2011 02-15 - 多言語非公開でも共有テンプレートページに掲載されるように。
  • 2011 02-13 - テンプレートで作成されるCSSファイルはファイルアップロードの容量には加算されないことを確認。
関連記事
  1. comment

コメント

Icon ※必須 :
Pass  ※入力した英数字を識別コードとしてNoに表示(123→LkZag.iM)

トラックバック

http://paro2day.blog122.fc2.com/tb.php/661-f04f5781

  1. trackback