.htaccess によるリダイレクト
PHPモジュール化やページ分割のカスタマイズを行った場合、ファイルの拡張子が .html から .php に変更になります。拡張子を変更すると、他サイトからそのファイルにリンクを貼っている場合、デッドリンク(404 Not Found)になってしまいます。
ここでは .htaccess を用いたリダイレクト(転送)によりデッドリンクを回避する方法を紹介します。
動作を簡単に説明すると、.htaccess という特殊なファイルに
hogehoge.html へのアクセスを hogehoge.php に転送する
という内容を設定し、一定の場所に配置しておくだけで hogehoge.html へのアクセスが自動的に hogehoge.php に転送されます。hogehoge.html の実体がなくても大丈夫です。
1..htaccess のフォーマット
.htaccess でリダイレクトをするための正式なフォーマットは、
RedirectPermanent URL-path URL
となります。URL-path が元URL、URLが転送先URLです。例えば archives/hogehoge.html を 同じディレクトリの hogehoge.php に転送する場合は
RedirectPermanent /blog/archives/hogehoge.html http://user-domain/blog/archives/hogehoge.php
という内容になります。ドメインを移行する場合も同様です。
フォーマットの URL-path は、ドキュメントルートからのパス(root からの絶対パスではありません)を指定し、先頭に "/" を付与してください。「ドキュメントルート」とはWebサーバがHTMLファイルを公開するためのディレクトリを意味します。
もう少し具体的に説明します。上記の例ではドメインが
http://user-domain/
で、そのドキュメントルートが
/path/to/htdocs
と仮定します。
ドメイン(つまりドキュメントルート)の配下に blog というディレクトリを作り、そこにブログの index.html が配置されている場合、index.html までの絶対パスは
/path/to/htdocs/blog/index.html
となります。この場合 .htaccess に記述すべき URL-path は、
/blog/?
と、/blog で開始させます。これが前述の「ドキュメントルートからのパス」という意味です。
ドキュメントルート直下、つまり /path/to/htdocs 直下に index.html を配置している場合は .htaccess に /blog を記述する必要はありません(ただし archives ディレクトリ等がある場合はそれを記述します)。
2..htaccess のアップロード先
.htaccess をアップロードするディレクトリは、ドキュメントルートでも、サイト・パス(ブログの index.html があるディレクトリ)でも大丈夫です。
3..htaccess 生成
.htaccess のリダイレクトの設定は、1ファイルに対して1行ずつ書かなければなりません。例えば、エントリーアーカイブ100ファイルを転送する場合、転送の設定を100行書く必要があります。
この手間を省くためにインデックステンプレートを用いて .htaccess ファイルを一気に生成します。
以下、.htaccess の作成手順です。
3.1 .htaccess 用テンプレート作成
管理メニューの「テンプレート」→「インデックス」で「テンプレートを新規作成」をクリックし、次ページで下記を設定します。
- テンプレート名:リダイレクト(何でもいいです)
- ファイル:htaccess.txt
- テンプレートの内容:下記
<MTArchiveList archive_type="Individual">
RedirectPermanent /blog/archives/<$MTArchiveDate format="%Y/%m"$>/<MTEntries><$MTEntryLink$></MTEntries> <$MTBlogURL$>archives/<$MTArchiveDate format="%Y/%m/%d_%H%M"$><MTEntries>.php</MTEntries>
</MTArchiveList>
<MTArchiveList archive_type="Category">
RedirectPermanent <$MTArchiveLink$>index.html <$MTBlogURL$>archives/cat<$MTCategoryID$>/index.php
</MTArchiveList>
<MTArchiveList archive_type="Monthly">
RedirectPermanent <$MTArchiveLink$>index.html <$MTBlogURL$>archives/<$MTArchiveDate format="%Y/%m"$>/index.php
</MTArchiveList>
リストは上から順に、エントリーアーカイブ/カテゴリー・アーカイブ/月別アーカイブを転送する設定になっています。転送が必要なアーカイブのみを設定してください。
3.2 注意事項
このリストは旧URLのファイル名をデフォルトの状態で生成していることを前提に作っており、この場合2つの注意事項があります。
まずこのファイルの生成は、管理メニューの「設定」→「公開」→「アーカイブ・マッピング」の「出力ファイル名」で新ファイル名を設定する前に行う必要があります。理由は旧ファイル名の生成に MTEntryLink を使用しているためです(MTEntryPermaLink を使っても構いません)。
もしすでに変更してしまっていたら「出力フォーマット」を一旦元の状態に戻して、このインデックステンプレートだけを生成するという手もあります(その際、他のアーカイブテンプレートを再構築しないように注意しましょう)。
もうひとつは、MTタグを使って URL-path を自動的に生成していますが、残念ながらMTタグのみで「ドキュメントルートからのパス+ファイル名」というフォーマットを生成することはできません(いわゆるURL形式で生成されます)。したがって、エントリーアーカイブについては MTEntryLink、カテゴリー・アーカイブ/月別アーカイブについては MTArchiveLink を使い、ファイルを生成した後、任意のエディタで開き、リダイレクトの設定で不要なドメイン部分を削除します。
上記とは別に、すでに「出力フォーマット」欄でファイル名を変更している場合は、URL-path の部分を適宜変更してください。また新URLについてもご自身の設定内容にあわせて適宜修正してください。
3.3 その他
この作業は一度でうまくいかないと思いますので、実際の新旧ファイル名と見比べながら、ファイルに設定したタグを修正することをお勧めします。またこの作業を行う前に、試しに各アーカイブについて1ファイルずつ手書きで .htaccess のリダイレクト設定を行ってみて、旧URLを開いた時に新URLへ転送されることを確認するのも良いでしょう。
4..htaccess アップロード
ファイルの内容がきちんとできたら保存・再構築し、出来上がったファイルを任意のエディタ(メモ帳)等で開き、ファイル名を .htaccess に変更して保存します。すでに .htaccess がある場合は、そのファイルに先の内容を追加します。
テンプレートの出力ファイル名をいきなり .htaccess として保存することも可能ですが、生成された瞬間に設定が有効となるので、一旦別のファイル名で作ることをお勧めします。
5.動作確認
できあがったファイルを .htaccess にリネームして、サイト・パス(index.html があるディレクトリ)にアップロードします。これで旧エントリーアーカイブ(.html)等にアクセスしてみてください。.php のファイルにアクセスできれば成功です。
6.Redirect と RedirectPermanent の違いについて
他のサイトを検索すると、Redirect ディレクティブと RedirectPermanent ディレクティブを使っている例がみられました。Apache2.0 のドキュメントを見てみると、たしかに
- RedirectPermanent 元URL 転送先URL
- Redirect permanent 元URL 転送先URL
の2つの設定方法がありますが、いずれも 301(永久に移動)のHTTPステータスコードを返すので、私の誤解がなければ振る舞いは全く同じです。ただし Redirect ディレクティブに permanent を付与しない場合は 302(一時的な移動)というHTTPステータスコードになりますのでご注意ください。
参考サイトは下記です。ありがとうございました。
3.2 アップグレードによるテンプレート変更箇所(3.15x用)
先日の3.2 アップグレードによるテンプレート変更箇所の 3.15x-ja 版です。3.15x-ja と 3.17x-ja では公開テンプレートの個別エントリーアーカイブが微妙に異なっているので、その部分をカバーしました。デフォルトテンプレートもほぼ同じだと思います。
1カラム版を元に作成していますので2カラム・3カラムの方はヘッダおよび中央カラム部分が対象となります。なおコメント・プレビュー/コメント・エラーについては 3.15x-ja と 3.17x-ja は同じですので先のエントリーを参照願います。
また3.2 アップグレードによるテンプレート変更箇所もここ10日ほどで何ヶ所か手直ししております。動作に不具合がある方は再度ご確認頂ければ幸いです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<meta name="generator" content="http://www.movabletype.org/" />
<title><$MTBlogName$>: <$MTEntryTitle$></title>
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="<$MTBlogURL$>index.rdf" />
<link rel="alternate" type="application/atom+xml" title="Atom" href="<$MTBlogURL$>atom.xml" />
<link rel="start" href="<$MTBlogURL$>" title="Home" />
<MTEntryPrevious>
<link rel="prev" href="<$MTEntryPermalink$>" title="<$MTEntryTitle encode_html="1"$>" />
</MTEntryPrevious>
<MTEntryNext>
<link rel="next" href="<$MTEntryPermalink$>" title="<$MTEntryTitle encode_html="1"$>" />
</MTEntryNext>
<MTInclude module="Remember Me">
<$MTEntryTrackbackData$>
<MTBlogIfCCLicense>
<$MTCCLicenseRDF$>
</MTBlogIfCCLicense>
<script type="text/javascript" src="<$MTBlogURL$>mt-site.js"></script>
</head>
<body class="layout-three-column" onload="individualArchivesOnLoad(commenter_name)">
<div id="box">
<!-- タイトル開始 -->
<div id="banner">
<h1><a href="<$MTBlogURL$>" accesskey="1"><$MTBlogName encode_html="1"$></a></h1>
<h2><$MTBlogDescription$></h2>
</div>
<!-- タイトル終了 -->
<!-- コンテンツ開始 -->
<div id="container">
<div class="blog">
<div id="menu">
<MTEntryPrevious>
<a href="<$MTEntryPermalink$>">≪ <$MTEntryTitle$></a> |
</MTEntryPrevious>
<a href="<$MTBlogURL$>">メイン</a>
<MTEntryNext>
| <a href="<$MTEntryPermalink$>"><$MTEntryTitle$> ≫</a>
</MTEntryNext>
</div>
<h2 class="date"><$MTEntryDate format="%x"$></h2>
<div class="blogbody">
<h3 class="title">●<$MTEntryTitle$></h3>
<$MTEntryBody$>
<div id="a<$MTEntryID pad="1"$>more"><div id="more">
<$MTEntryMore$>
</div></div>
<div class="posted">Posted by <$MTEntryAuthor$> at <$MTEntryDate$>
<!-- トラックバックを別ウィンドウに表示する場合ここから
<MTEntryIfAllowPings>
| <a href="<$MTCGIPath$><$MTTrackbackScript$>?__mode=view&entry_id=<$MTEntryID$>" onclick="OpenTrackback(this.href); return false">トラックバック</a>
</MTEntryIfAllowPings>
トラックバックを別ウィンドウに表示する場合ここまで -->
</div><!-- posted -->
</div><!-- blogbody -->
<!-- トラックバックを同一ウィンドウに表示する場合ここから -->
<MTEntryIfAllowPings>
<MTIfPingsActive>
<a id="trackbacks" name="trackbacks"></a>
<div class="comments-head">トラックバックURL</div>
<div class="comments-body">
<p class="techstuff">このエントリーのトラックバックURL:<br />
<$MTEntryTrackbackLink$></p>
</div>
<MTIfNonZero tag="MTEntryTrackbackCount">
<!--
<p>このリストは、次のエントリーを参照しています: <a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>:</p>
-->
<MTPings>
<MTPingsHeader><div class="comments-head">トラックバック</div></MTPingsHeader>
<MTPings>
<div class="comments-body">
<p id="p<$MTPingID$>">
≫ <a href="<$MTPingURL$>"><$MTPingTitle$></a> from <$MTPingBlogName$><br />
<$MTPingExcerpt$> <a href="<$MTPingURL$>">[続きを読む]</a>
</p>
<div class="comments-post">Tracked on <$MTPingDate$></div>
</div><!-- comments-body -->
</MTPings>
</MTIfNonZero>
</MTIfPingsActive>
</MTEntryIfAllowPings>
<!-- トラックバックを同一ウィンドウに表示する場合ここまで -->
<MTEntryIfAllowComments>
<MTIfCommentsActive>
<a id="comments" name="comments"></a>
<MTComments>
<MTCommentsHeader><div class="comments-head">コメント</div></MTCommentsHeader>
<MTComments>
<a id="c<$MTCommentID$>" name="c<$MTCommentID$>"></a>
<div class="comments-body">
<$MTCommentBody$>
<div class="comments-post">Posted by <$MTCommentAuthorLink default_name="Anonymous" spam_protect="1"$> <MTCommentAuthorIdentity> at <$MTCommentDate$></div>
</div>
</MTComments>
<MTEntryIfCommentsOpen>
<MTIfCommentsAllowed>
<div class="comments-head">コメントしてください</div>
<div class="comments-body">
<MTIfRegistrationRequired>
<MTIfNonEmpty tag="MTTypeKeyToken">
<div id="thanks">
<p>サイン・インを確認しました、
<script type="text/javascript" src="<MTCGIPath><MTCommentScript>?__mode=cmtr_name_js"></script><script>document.write(commenter_name);</script>.
さん。コメントしてください。 (<a href="<$MTRemoteSignOutLink static="1"$>">サイン・アウト</a>)</p>
(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)
<form method="post" action="<$MTCGIPath$><$MTCommentScript$>" name="comments_form" onsubmit="if (this.bakecookie[0].checked) rememberMe(this)">
<input type="hidden" name="static" value="1" />
<input type="hidden" name="entry_id" value="<$MTEntryID$>" />
<p><label for="url">URL:</label><br />
<input tabindex="1" type="text" name="url" id="url" />
情報を登録する?
<input type="radio" id="remember" name="bakecookie" onclick="rememberMe(this.form)" /><label for="remember">はい</label><input type="radio" id="forget" name="bakecookie" onclick="forgetMe(this.form)" value="Forget Info" style="margin-left: 15px;" /><label for="forget">いいえ</label><br style="clear: both;" />
</p>
<p><label for="text">コメント:</label><br />
<textarea tabindex="2" id="text" name="text" rows="10" cols="50"></textarea></p>
<div align="center">
<input type="submit" tabindex="3" name="preview" value=" 確認 " />
<input style="font-weight: bold;" tabindex="4" type="submit" name="post" value=" 投稿 " />
</div>
</form>
</div>
<script language="javascript" type="text/javascript">
<!--
if (commenter_name) {
document.getElementById('thanks').style.display = 'block';
} else {
document.write('サイン・インしていません。このサイトにコメントをする前に登録してください。 <a href="<$MTRemoteSignInLink static="1"$>"> サイン・イン</a>');
document.getElementById('thanks').style.display = 'none';
}
// -->
</script>
<MTElse>
コメント登録機能を利用するには、TypeKey トークンを設定してください。
</MTElse>
</MTIfNonEmpty>
<MTElse> <MTTemplateNote value="Case of comments not required">
<MTIfNonEmpty tag="MTTypeKeyToken">
<script type="text/javascript" src="<MTCGIPath><MTCommentScript>?__mode=cmtr_name_js"></script>
<script language="javascript" type="text/javascript">
<!--
if (commenter_name) {
document.write('サイン・インを確認しました、', commenter_name, 'さん。コメントしてください。 (<a href="<$MTRemoteSignOutLink static="1"$>">サイン・アウト</a>)');
} else {
document.write('TypeKey ID を使って <a href="<$MTRemoteSignInLink static="1"$>"> サイン・イン</a> してください。');
}
// -->
</script>
</MTIfNonEmpty>
<form method="post" action="<$MTCGIPath$><$MTCommentScript$>" id="comments_form" name="comments_form" onsubmit="if (this.bakecookie[0].checked) rememberMe(this)">
<input type="hidden" name="static" value="1" />
<input type="hidden" name="entry_id" value="<$MTEntryID$>" />
<script type="text/javascript">
writeTypeKeyGreeting(commenter_name, <$MTEntryID$>);
</script>
<MTIfCommentsModerated>
<p class="comments-open-moderated">
(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)
</p>
</MTIfCommentsModerated>
<div id="name_email">
<div id="name-email">
<p><label for="author">名前:</label><br />
<input tabindex="1" id="author" name="author" /></p>
<p><label for="email">メールアドレス:</label><br />
<input tabindex="2" id="email" name="email" /></p>
</div>
<MTIfNonEmpty tag="MTTypeKeyToken">
<script language="javascript" type="text/javascript">
<!--
if (commenter_name) {
document.getElementById('name_email').style.display = 'none';
}
// -->
</script>
</MTIfNonEmpty>
<p><label for="url">URL:</label><br />
<input tabindex="3" type="text" name="url" id="url" />
</p><p>
<label for="comment-bake-cookie"><input type="checkbox" id="comment-bake-cookie" name="bakecookie" tabindex="9" accesskey="r" onclick="if (!this.checked) forgetMe(document.comments_form)" value="1" onkeypress="if (!this.checked) forgetMe(document.comments_form)" />情報を保存する?</label>
保存しますか?
<input type="radio" id="remember" onclick="rememberMe(this.form)" name="bakecookie" /><label for="remember">はい</label><input type="radio" id="forget" name="bakecookie" onclick="forgetMe(this.form)" value="Forget Info" style="margin-left: 15px;" /><label for="forget">いいえ</label><br style="clear: both;" />
</p>
<p><label for="text">コメント:</label> <MTIfAllowCommentHTML>
(書式を変更するような一部のHTMLタグを使うことができます)</MTIfAllowCommentHTML><br />
<textarea tabindex="4" id="text" name="text" rows="10" cols="50"></textarea></p>
<div align="center">
<input type="submit" name="preview" tabindex="5"
value=" 確認 " />
<input style="font-weight: bold;" type="submit" name="post"
tabindex="6" value=" 投稿 " />
</div>
</form>
</MTElse>
</MTIfRegistrationRequired>
</div><!-- comments-body -->
</MTIfCommentsAllowed>
<script type="text/javascript" language="javascript">
<!--
if (document.comments_form.email != undefined)
document.comments_form.email.value = getCookie("mtcmtmail");
if (document.comments_form.author != undefined)
document.comments_form.author.value = getCookie("mtcmtauth");
if (document.comments_form.url != undefined)
document.comments_form.url.value = getCookie("mtcmthome");
if (getCookie("mtcmtauth") || getCookie("mtcmthome")) {
document.comments_form.bakecookie[0].checked = true;
} else {
document.comments_form.bakecookie[1].checked = true;
}
//-->
</script>
</MTEntryIfCommentsOpen>
</MTEntryIfAllowComments>
</MTIfCommentsActive>
</div>
</div>
<!-- コンテンツ終了 -->
<br clear="all" />
</div>
</body>
</html>
アルファブロガー 11人の人気ブロガーが語る成功するウェブログの秘訣とインターネットのこれから
「アルファブロガー」とは「ブログ界の世論に大きな影響力を与える少数のパワーブロガー」を指すようで、2005年2月に発表された「日本のアルファブロガーを探せ 2004」のベストイレブンの方々が下記の本に登場します。
アルファブロガー 11人の人気ブロガーが語る成功するウェブログの秘訣とインターネットのこれから posted with amazlet on 05.12.25 FPN(フューチャー プランニング ネットワーク) 徳力 基彦 渡辺 聡 佐藤 匡彦 上原 仁 翔泳社 (2005/10/21) おすすめ度の平均: ![]() 「ブログ」法を教授してくれるブロガーたち スゴいブロガーのインタビュー集 |
内容はインタビュー形式で、ウェブログ運営における成功の秘訣やブログの将来への可能性などが議論されているようです。以下、ベストイレブンサイトのリンクを掲載しておきます。
- 俺様キングダム/山本“切込隊長”一郎
- 極東ブログ/finalvent
- R30::マーケティング社会時評/R30
- isologue/磯崎哲也
- 百式/田口元
- Passion For The Future/橋本大也
- Ad Innovator/織田浩一
- 英語で読むITトレンド/梅田望夫
- On Off and Beyond/渡辺千賀
- NDO::Weblog/伊藤直也
- ネタフル/コグレマサト
読み始めたばかりなので書評はありません。ちなみに「アルファブロガーに続くブロガー」という意味の「ベータブロガー」や、その隙間を埋めるといった意味の「ニッチブロガー」という言葉もあるようです。
ブログ簡単パワーアップ Movable Type スーパーカスタマイズテクニック
ブログ自由自在 Movable Type 上級カスタマイズ術・第2集のエントリーでお知らせしておりました、当サイトのテンプレートやカスタマイズ記事を載せて頂く予定の書籍が、
- 「ブログ簡単パワーアップ Movable Type スーパーカスタマイズテクニック」
というタイトルでいよいよ発売が近づいてまいりました。
ややフライング気味ですがAmzonでみつけましたので、紹介させて頂きます。
![]() | ブログ簡単パワーアップ Movable Type スーパーカスタマイズテクニック 藤本 壱 技術評論社 2005-11-08 売り上げランキング : Amazonで詳しく見る by G-Tools |
書籍の内容につきましては執筆者の壱さんのサイトの下記のエントリーに掲載されています。
上記のAmazonで予約受付中です(日付からすると発売は11月8日でしょうか)。
正式に発売されたらまた改めてエントリーします。
エントリーの中でMTタグを使う
MTタグはテンプレートでの使用が前提となっており、エントリーの内容ではを使うことができません。例えば他のエントリーアーカイブページへのリンクや、画像を貼り付けてURLを記述する場合、メインページのテンプレートや各アーカイブテンプレートには、下記リストのように、
エントリーアーカイブページへのリンク
<a href="<$MTLink entry_id="678"$>">
画像のURL
<img src="<$MTBlogURL$>images/hogehoge.gif" alt="hogehoge" />
とMTタグを使った記述が可能ですが、エントリーの内容には、
エントリーアーカイブページへのリンク
<a href="http://www.koikikukan.com/archives/2005/10/24-011007.php">
画像のURL
<img src="http://www.koikikukan.com/images/hogehoge.gif" alt="hogehoge" />
と、URLを直接書かなければなりません。
もしエントリーにMTタグを直接書くことができれば、エントリーアーカイブのPHP化を行った場合にファイル名を修正する必要がありませんし、ドメインを変更した場合もエントリーに書いたURLを修正する必要がなくなり、大変便利です。
ということで、エントリー内でMTタグが利用可能になるプラグインをご紹介します。
プラグイン配布元は下記です。
Life on the Kernel:MT::Plugin::EvalTemplate
以下、設定方法です。
1.プラグインのダウンロードおよびアップロード
配布元にある EvalTemplate のリンクをクリックしてダウンロードします。eval-template.txt というファイルがダウンロードされますので、ファイル名を eval-template.pl に変更し、それを plugins ディレクトリ直下にアップロードします。
2.テンプレート修正
テンプレートに記述されている MTEntryBody または MTEntryMore タグに eval 属性を付与します。本文でMTタグを使いたい場合は、MTEntryBody タグを探して
<$MTEntryBody eval="1"$>
と青色部分を追加するだけです。追記で利用したい場合は、MTEntryMore タグを
<$MTEntryMore eval="1"$>
に変更します。
これで「保存」をクリックし、テンプレートを保存します。これでエントリー編集画面に冒頭に挙げたようなMTタグを書き込んでみましょう。エントリーの保存・再構築後に記述したMTタグ、例えば <$MTBlogURL$> と書いたのであれば、URLに変換されていれば成功です。
ここではエントリー本文と追記のみについて書きましたが、このプラグインは Global Filter なので他のMTタグにも適用できるようです。ただし配布元で
間違っても Comments や Trackback で有効にしないように気を付けよう。
という注意書きがあります。例えば MTCommentBody でこの機能を有効にすると、投稿内容にMTタグを記述されるととんでもないことになる、という意味だと思いますので気をつけましょう。
2005.12.08 追記
ダウンロードされるファイル名について修正しました。
2006.11.21 追記
配布元のリンクを修正しました。
Google PageRank 復活
3ヶ月以上前、つまり旧URLの時になんらかのペナルティを受けた影響で どのページも PageRank 0 の状態が続いてましたが、3日ほど前に突然復活していました。ちなみにトップページは、0になる前は3か4だったと記憶しています。今回は5に上がっていました。
検索してみると、PageRank の更新周期は3ヶ月のようです。そういえば現在のURLに変更したのが今年の7月18日です。Google へのサイト登録もその後すぐ行ったと思いますので、丁度3ヶ月ということで計算が合います。
以下、PageRankに関する記事です。
サーバ不具合のお詫び(2005/10/23)
本日未明、当サイトにアクセスできない状態が続いておりました。
原因は、自宅サーバである Windows XP へ他のPCを接続してフォルダの共有を行った際にファイアウォールおよび認証によるアクセスの設定が自動的に有効になってしまったようです。
現在、設定を修正して正常に接続されることを確認しております。ご迷惑をおかけ致しましたこと、この場をお借りしてお詫び申し上げます。
村治佳織・右手急性疾患
日本を代表する女流クラシックギタリスト・村治佳織さんが右手急性疾患(右手後骨間神経麻痺:全治1ヶ月)を患ってしまったそうです。公式サイトでも公演中止のお知らせが出ていました。
1日も早い回復を心よりお祈り申し上げます。
アーカイブテンプレート作成方法
Movable Type で月別・週別・日別のアーカイブページを作成する場合、デフォルトで使用されるアーカイブテンプレートは「日付アーカイブテンプレート」です。つまり、ひとつのテンプレートで3種類のアーカイブページを賄う設定になっています。
ですが、それぞれのアーカイブページで異なる動作を行いたい場合、例えば、月別アーカイブページでは「×年×月のページ」、日別アーカイブページでは「×月×日のページ」というタイトルを振りたい時、同じテンプレートを使っているとMTタグのみでこのような設定を行うことはできません(多分)。
ここでは、日別・週別アーカイブページに対し、新しく日別アーカイブテンプレート/週別アーカイブテンプレートを作成・対応させるカスタマイズを紹介します。これを行うことでアーカイブページとテンプレートの対応(アーカイブマッピング)は下記のようになります。
| アーカイブの種類 | 対応テンプレート |
|---|---|
| 月別アーカイブページ | 日付アーカイブテンプレート |
| 週別アーカイブページ | |
| 日別アーカイブページ |
| アーカイブの種類 | 対応テンプレート |
|---|---|
| 月別アーカイブページ | 日付アーカイブテンプレート |
| 週別アーカイブページ | 週別アーカイブテンプレート |
| 日別アーカイブページ | 日別アーカイブテンプレート |
なお、これ以外の用途で新しくアーカイブテンプレートを作成する場合にも参考になると思います。
1.テンプレートの作成
まず日別用アーカイブの元となる日付アーカイブテンプレートをテキストコピーします。
管理メニューの「テンプレート」→「アーカイブ」→「日付アーカイブ」の順にクリックし、テンプレートの内容をコピーします。
次に管理メニューの「テンプレート」→「アーカイブ」→「テンプレートを新規作成」の順にクリックし、次のページで下記の内容を設定します。
- テンプレート名:日別アーカイブ
- このテンプレートにリンクするファイル:(空白)
- テンプレートの内容:先ほどコピーした内容をペースト
設定が完了したら保存します。週別アーカイブテンプレートも同じ要領で作成し、「テンプレート名」を「週別アーカイブ」とします。
2.アーカイブマッピングの変更
「アーカイブマッピング」とは冒頭の説明の通り、あるアーカイブページとアーカイブテンプレートの対応です。ここではアーカイブページを生成する際、どのテンプレートを使用するかの設定を行います。
- 日別の場合
- アーカイブの種類:日別 テンプレート:日別アーカイブ
- 週別の場合
- アーカイブの種類:週別 テンプレート:週別アーカイブ
3.再構築を有効にする
上の画像の一番左にあるチェックボックスは、再構築対象にする・しないを決めるためのものです。上の画像では日別アーカイブは再構築されますが、週別アーカイブは再構築されない状態を示しています。Movable Type のデフォルト状態では日別・週別にはチェックされていないので、再構築が必要なアーカイブにチェックをつけて保存します。
これで全ての設定は完了です。
公開テンプレートをお使い頂いた方からよく「再構築でエラーになります」という質問を頂くのですが、公開テンプレートのメインページ(や他のアーカイブページ)にはカレンダーを表示するようにしており、カレンダーを表示するタグの中に
<a href="<$MTEntryLink archive_type="Daily"$>">
という設定があります。これはカレンダーの日付のリンクで、リンク先として日別アーカイブページを archive_type 属性で設定しています。この設定は日別アーカイブページの再構築を有効な状態にしておかないと再構築時に
というエラーになります。再構築を有効にするための設定がこの「アーカイブマッピング」の日別欄のチェックです。
デフォルトではここがチェックされていないためエラーになる訳です。
4.公開テンプレート修正例
公開テンプレートでは日付アーカイブページに
<div class="sidetitle">
The list of "<$MTArchiveTitle$>"
</div>
<div class="side">
<MTEntries>
<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a><br />
</MTEntries>
</div>
という、該当アーカイブページの一覧を表示するサイドメニューを設置しています。
月別アーカイブでは青色の生成されるタイトル部分が
The list of "2005年10月"
となりますが、日別アーカイブでは
The list of "2005年10月20日"
と、やや長くなります。
日付アーカイブを共用しているとこの部分は変更できないのですが、独立させた日別アーカイブテンプレートのみ、例えば
<div class="sidetitle">
The List of "<$MTArchiveDate format="%b"$>月<$MTArchiveDate format="%d"$>日"
</div>
と変更することで、日別アーカイブページの該当部分を
The list of "10月20日"
という表示に変更することが可能になります。
本文に引用をつける
他のブログ記事や情報を引用する場合に、
これは引用文です
という囲い枠を使っているのを頻繁に見かけると思います。これは「引用」という手法で、当サイトのカスタマイズ記事ではリストを表示する時によく使用しています。
実はブログを始めた当初、この引用の設定方法がわからず(CSSもよく分かっていなかった)、調べるのに結構苦労した記憶があります。この表示方法を何という単語で検索して良いのかさえ分かりませんでした。
ということで、このエントリーでは引用の設定方法について説明します。
1.引用文を blockquote 要素で囲む
HTMLでは引用を明示する意味的なタグとして blockquote 要素が用意されています。
上記の例では本文中に
<blockquote><p>これは引用です。</p></blockquote>
という指定を行うだけです。blockquote 要素の子要素として p 要素等のブロック要素が構造上必要ですが、表示についてはブラウザ依存と思われます。
blockquote のデフォルトスタイルは上下左右にインデントが付与されますので、CSSの設定を行わなくてもそれなりの表示になります。余談ですが、短い引用(テキストの両端に「"」をつける)の場合は q 要素を使って、
<q>これは引用です。</q>
とします。
Movable Type 3.1x 以降の編集画面であれば、編集画面右上にある

というリンクアイコンを使うと便利です。使い方は、引用したいテキストをマウス等で選択状態にしてからこのアイコンをクリックすると、選択状態のテキストの両端に blockquote タグが付与されます。
2.スタイルを設定する
blockquote に任意のスタイル(枠線・背景等)を与えるために、CSS(styles-site.css)に下記のように blockquote のタイプセレクタを作ります。
blockquote {
}
この中に「プロパティ」と呼ばれるものを設定して、フォントや背景・枠線等の装飾を行います。下記に設定のサンプルを示します。各プロパティの意味は右側のコメント(/* */ の部分)を参考にしてください。
これは当サイトの blockquote に近い設定内容になっています。
blockquote {
margin: 15px; /* 枠線を表示する上下左右の空白 */
padding: 10px; /* 枠線から文字までの上下左右の空白 */
background: #fffff6; /* 背景色 */
border: 1px solid #999999; /* 文字色 */
font-size: 10px; /* フォントサイズ */
line-height: 150%; /* 改行幅 */
}
枠線(border)については、以前書いた枠線(border)の指定が参考になれば幸いです。
StyleCatcher によるスタイル変更方法
Movable Type 3.2から公開されている StyleCatcher プラグインを利用したスタイル変更方法です(先日エントリーしたMovable Type 3.2 テンプレート(for StyleCatcher)に書いていたものから StyleCatcher 部分の記述をこちらに独立させました)。
各サイトでも取り上げられていますが、Movable Type のデフォルトテンプレートを利用している場合、本プラグインを利用することでブログのスタイルシート(CSS)を簡単に切り替えることができます。
1.StyleCatcher プラグインのインストール
STYLECATCHER 1.01より Download をクリックしてプラグインをダウンロードします。
ダウンロードした .zip ファイルを解凍し、その中にある mt-static ディレクトリ配下の plugins ディレクトリと、plugins ディレクトリ配下の StyleCatcher ディレクトリをそのまま、mt-static または plugins ディレクトリにそれぞれアップロードします。繰り返しますと、
- plugins → mt-static ディレクトリへアップロード
- StyleCatcher → plugins ディレクトリへアップロード
となります。plugins ディレクトリを誤って plugins ディレクトリにアップロードしないように気をつけてください。
管理画面のメインメニュー右側にある「プラグイン」のリンクをクリックして、StyleCatcherプラグインがリストされている事を確認してください。 この状態で「StyleCatcher」タイトルのリンクをクリックするとエラーになりますのでご注意ください。
2.環境設定
1項で表示したプラグイン画面の「StyleCatcher」の右側にあるメニューより「設定を表示」をクリックすると、中央に下記のような設定画面が表示されます。
Theme Root URL:http://path/to/MT3.2/mt-static/themes/
Theme Root Path:/home/path/to/MT-3.2/mt-static/themes
基本設定が完了していれば、青色のようにURLおよびパスが設定されています。またそれぞれの最後に mt-static/themes というディレクトリが自動的に設定されていると思いますので、そのまま「変更を保存」をクリックします(もし設定されていなければ両方とも themes まで指定してください)。クリックすると自動的に mt-static 配下に themes ディレクトリが生成されます。また themes ディレクトリに base-weblog.css が生成されていることを併せて確認してください。base-weblog.css は汎用的なスタイルシートです。
Theme Root URLは、デフォルトでは "/" で開始しているかもしれませんが、上記のように http://? で始めた方が良いようです(このURLがCSSを参照するURLとして使用されます)。
生成された theme 配下に、次項で選択するCSSが保存されるようになります。また styles-site.css の内容は、これから選択するCSSを import するだけのファイルに上書きされます。現在の styles-site.css はスタイルシートを切り替える際に自動的にバックアップされますのでご心配なく。
3.スタイルシート切り替え
プラグイン画面のタイトル「StyleCatcher バージョン 1.01」のリンクをクリックすると切り替え画面にジャンプします。デフォルトの状態では Theme or Repository URL: というテキストエリアに
http://www.sixapart.com/movabletype/styles/library
が設定されています。これは Six Apart のライブラリです。この状態で「Find Style」をクリックし、しばらくすると画面下にテーマがサムネールで表示されます。好きなテーマをクリックして「Select a Weblog...」で設定するブログを選択し、「Choose this Design」をクリックします。
成功すると、
Successfully applied new theme selection.
というダイアログが表示されます。テンプレートの編集画面に進み、スタイルシートの内容が
/* This is the StyleCatcher theme addition. Do not remove this block. */
@import url(http://path/to/themes/base-weblog.css);
@import url(http://path/to/themes/library/stylexx.css);
/* end StyleCatcher imports */
に変換されていることを確認してください。旧スタイルシートのバックアップもインデックステンプレート画面に表示されていると思います。
4.選択したスタイルが反映されない場合
新しいスタイルが正常に読み込まれているかを確認します。そのためには、styles-site.css で 表示されている URL をそれぞれブラウザに設定して直接起動してください。これでファイルの取得ができない、または正常に表示されない場合、適正に読み込まれていないと思われますので、この部分の設定をご自身の環境に合うよう、直接編集・修正してください。
5.システム管理者権限がない場合
3.1x から 3.2 にバージョンアップする際、システム管理権限がなくなってしまうケースがあるようです。システム管理権限がないと、StyleCatcher の設定ができない等の問題が発生します。システム管理者の権限の有無は「メイン・メニュー」→「システム・メニュー」→「投稿者」の「投稿者名」をクリックしたページで確認できます。
なお、システム管理者権限を付与するCGIが下記に公開されていますのでご紹介しておきます。
Movable Type 管理メニュー対応表(3.1x - 3.2)
3.1x に馴染んでいる方にとっては、3.2 の管理メニューで元の項目がどこに移動したのか戸惑うことが少なくないと思います。ということで 3.1x と 3.2 の管理メニュー対応表を作ってみました。3.2 の欄内は「設定」のリンクをクリックした状態で、上から順に、
- 上部に並んでいるリンク
- グリーン色のメニュー名
- 項目名
で記すようにしています。
| 3.1x | 3.2 | ||
|---|---|---|---|
| 基本設定 | ウェブログの名前 | 基本 ブログの設定 ブログ名 | |
| ローカル・サイト・パス | 公開 サイトURL/パス サイト・パス | ||
| サイトのURL | 公開 サイトURL/パス サイトURL | ||
| ローカル・アーカイブ・パス | 公開 サイトURL/パス [アーカイブの設定]をチェック アーカイブ・パス | ||
| アーカイブのURL | 公開 サイトURL/パス [アーカイブの設定]をチェック アーカイブURL | ||
| 時間帯 | 基本 ブログの設定 時間帯 | ||
| 設定 | 一般的な設定 | ウェブログの説明 | 基本 ブログの設定 ブログの説明 |
| 表示する日数 | 基本 表示に関する初期設定 表示数 | ||
| 日付用の言語 | 基本 表示に関する初期設定 日付表示用の言語 | ||
| エントリーの表示順 | 基本 表示に関する初期設定 エントリーの表示順 | ||
| 新規エントリーのデフォルトのテキストフォーマット | 新規投稿 エントリーを新規に投稿したときの初期値 改行設定 | ||
| デフォルトの投稿の状態 | 新規投稿 エントリーを新規に投稿したときの初期値 公開設定 | ||
| 概要に載せる文字数 | 基本 表示に関する初期設定 概要にいれる文字数 | ||
| 除去機能 | 基本 表示に関する初期設定 許可するHTMLタグ | ||
| 表示されるメッセージ | 該当なし | ||
| クリエイティブ・コモンズ・ライセンス | 基本 他のサービスの設定 クリエイティブ・コモンズ・ライセンス | ||
| アーカイブの設定 | 優先するアーカイブのタイプ | 公開 公開 パーマリンクの設定 | |
| アーカイブ・ファイルの拡張子 | 公開 公開 アーカイブの拡張子 | ||
| 以前の形式の個別アーカイブへのリンクをつかう | 該当なし | ||
| 広報/ リモートインターフェイス/ トラックバック | ウェブログが更新されたときに通知する | 新規投稿 更新Ping/トラックバックの設定 更新を自動通知する先 | |
| Recent Updaed キー | 新規投稿 更新Ping/トラックバックの設定 Recently Updatedキー | ||
| Google API キー | 基本 他のサービスの設定 Google APIキー | ||
| トラックバックをデフォルトで受け付ける | コメント/トラックバック トラックバック トラックバックを受信 | ||
| トラックバックをメールで通知する | コメント/トラックバック トラックバック メール通知 | ||
| トラックバック先の自動検出を動作させる | 新規投稿 更新Ping/トラックバックの設定 トラックバック自動検知(外部・内部別が追加) | ||
| コメントの設定 | 未登録の読者からのコメントを受けつける | コメント/トラックバック コメント 投稿を受け付ける条件(設定条件変更) | |
| 名前とメールアドレスを必須にしますか | コメント/トラックバック コメント メールアドレスの要求 | ||
| コメントの事前確認を有効にする。 | コメント/トラックバック コメント 即時に公開するコメント | ||
| 登録されたコメンターのコメントは許可する | コメント/トラックバック コメント 投稿を受け付ける条件(設定条件変更) | ||
| TypeKey トークン | コメント/トラックバック コメント 認証サービスの設定(TypeKeyログインのみでトークンが自動設定されるよう変更) | ||
| コメンターを自動的に登録する | 該当なし([コメント投稿者]へ移動?) | ||
| TypeKey からメールアドレスを取得する | コメント/トラックバック コメント メールアドレスの要求(?) | ||
| デフォルトでの「コメントを受けつける」の設定 | コメント/トラックバック コメント 投稿を受け付ける条件 | ||
| コメントを並べる順番 | 基本 表示に関する初期設定 コメントの表示順 | ||
| コメントのテキストフォーマット | コメント/トラックバック コメント 改行設定 | ||
| コメントでのHTMLの利用を許可する | コメント/トラックバック コメント HTMLの利用を許可 | ||
| URLを自動的にリンクにする | コメント/トラックバック コメント URLを自動的にリンク | ||
| コメントが登録されたら通知する | コメント/トラックバック コメント メール通知(条件追加) | ||
| アーカイブの設定 | 新しく、テンプレートとアーカイブを関連付ける。 | 公開 アーカイブ・マッピング [マッピングを新規作成]をクリック | |
| アーカイブ | 公開 アーカイブ・マッピング | ||
| 禁止IP | コメント/トラックバック 迷惑コメント/トラックバック | ||
| 追加項目 | コメント/トラックバック トラックバック 事前確認 | ||
| 他メニューから移動してきたもの | 公開 公開 再構築オプション | ||
3.2 では「表示されるメッセージ」と「以前の形式の個別アーカイブへのリンクをつかう」という項目がなくなっています。
「禁止IP」と「迷惑コメント/トラックバック」の関連付けはこじつけです。
TOHOシネマズ市川コルトンプラザ
近所に「コルトンプラザ」というショッピングセンターがあるのですが、そこの映画館で「おいしい映画祭」というイベントを行ってました。期間は 10/1?10/21 ということで残りわずかですが、割引料金で映画が見れます。
以下、TOHOシネマズ 市川コルトンプラザのニュースからの引用です。
第3回「おいしい映画祭」実施決定!「食」をテーマ、または「食」が重要な要素として出てくる映画の中から選りすぐりの作品をピックアップ。第3回目となる今年は、アカデミー賞受賞作品や、今ブームの韓流映画も取り揃え、さらに充実したラインナップでお届けいたします。また、映画の上映だけでなく、映画に登場するまた関連するメニューをコルトンプラザ内のレストランで再現。「映画」と「食」の結びつきを深めるキャンペーンも同期間に実施いたします。既に観た作品も「食」という新しい観点で新しい発見ができるかも。このおいしい機会を是非お見逃しなく! 期間 10月1日(土)?21日(金) 上映スケジュール 10/1?10/7 「僕の彼女を紹介します」10:00?/15:50? 「シュリ」12:50?/19:00? 10/8?10/14 「ノッティングヒルの恋人」10:00?/15:50? 「サイドウェイ」12:50?/19:00? 10/15?10/21 「初恋のきた道」10:00?/15:50? 「ライフ・イズ・ビューティフル」12:50?/19:00? 料金 ¥1,000 ※全席指定・全回完全入替制


