エントリー・アーカイブファイル名の不具合を解消する

エントリー・アーカイブファイル名の不具合を解消する

Posted at May 13,2006 2:32 AM
Tag:[Customize, Entry, MovableType, TroubleShooting]

Movable Type 日本語版でのエントリー・アーカイブファイル名はデフォルトの状態で entry_basename というものが使われます。これはタイトルの先頭からファイル名(最大30文字)を生成し、エントリータイトルに半角が使用されていればそのまま反映されますが、すべて日本語の場合は、post.html、post_1.html、post_2.html …という具合にファイル名が生成されます。

この entry_basename は、ファイル名長以外を制御することができないため、どのようなファイル名になるかはシステム依存となります。簡単な動作確認をした限りでは一度公開したエントリーを削除して、その後の新エントリーには削除したファイル名が付与されました(エントリータイトルが全て日本語の場合)。また数名の方から、異なるエントリーに同一ファイル名が付与されるという不具合に関する質問も頂いています(原因不明)。
さらにバックアップからエントリーを復旧する場合、ファイル名はバックアップから取得しません。つまりエントリー投稿時と同様のロジックでファイル名を生成する訳なので、バックアップ前と同一のファイル名が付与されない可能性もあります。

つまり、エントリー・アーカイブファイル名には entry_basename を利用せず、タイムスタンプ等のエントリー固有の値を利用することを推奨します。
下記にエントリー投稿時間をエントリーファイル名に使用する設定をご紹介します。

  • 管理画面の「設定」→「公開」をクリック
  • ページ下方にある「アーカイブ・マッピング」の項目の「エントリー・アーカイブ」の「出力フォーマット」のプルダウンメニューから一番下の「カスタマイズする」を選択
  • 入力フィールドに下記を入力
%y/%m/%d%h%n%s%x
  • 保存して再構築

データフォーマットは下記の対応になっています。途中の "/" はディレクトリです。

%y:年
%m:月
%d:日
%h:時
%n:分
%s:秒
%x:拡張子(「設定」→「公開」→「アーカイブの拡張子」で設定したもの)

拡張子を個別に設定する場合は最後の拡張子 %x を .php 等に書き換えてください。

2006.05.15 追記
拡張子の表記を修正し、データフォーマットを追記しました。

関連記事
トラックバックURL


トラックバック

エントリー投稿時間をエントリーファイル名にする from いろんなことが起こる
小粋空間さんのエントリー・アーカイブファイル名の不具合を解消するに書かれている不... [続きを読む]

Tracked on May 15, 2006 3:27 AM

3 カラムレイアウト from 無料ネット生活友の会?ブログ編
2 カラムレイアウトから、3 カラムレイアウトに、テンプレートの入れ替えをしまし... [続きを読む]

Tracked on May 15, 2006 10:23 PM

構築メモ from Lowspec
アーカイブファイル名がデフォルトのままだと、構築されたファイル名に半角が混ざった... [続きを読む]

Tracked on February 23, 2007 5:43 PM

アーカイブファイル名を変更する from Lowspec
アーカイブファイル名をデフォルトのままにしておくと、タイトルに半角が混ざった時に... [続きを読む]

Tracked on February 26, 2007 10:00 AM

ブログのエントリーアーカイブ名変更でリンク切れ解消! from モテリーマンへの道
昨年「らのねっと」の管理サーバ移行に伴いこのブログサイトも移行したのですが、それ... [続きを読む]

Tracked on March 11, 2007 1:47 PM

MT4.32:投稿時間からエントリー・アーカイブファイル名を生成する from ポロのある日々(6NAEE POLO)
MT4.32のデフォルトでは、エントリー・アーカイブファイル名(ブログ記事のUR... [続きを読む]

Tracked on November 11, 2009 12:30 AM
コメント

拡張子が .html か .php か云々は単に %x と書けば済むことかと思いまーす \(^o^)/

[1] Posted by shit : May 14, 2006 9:01 PM

>shitさん
こんばんは。
仰せの通りです。
ご指摘ありがとうございました!

[2] Posted by yujiro : May 14, 2006 11:39 PM

この件でずっと悩んでいました。本当に助かりました。

[3] Posted by fukao : May 23, 2006 9:20 PM

>fukaoさん
こんにちは。
ご連絡ありがとうございました。
お役にたてたようで良かったです。
ではでは!

[4] Posted by yujiro : May 24, 2006 11:30 AM

はじめまして。
ブログ引っ越しの際にエクスポート・インポートしたらエントリー・ファイル名がずれて困っていました。
こちらで紹介されている方法を参考にさせていただき、対応したいと思います。
本当に助かりました。

[5] Posted by らの : March 11, 2007 12:24 PM

>らのさん
はじめまして。
記事参照&エントリーありがとうございました。
お役に立てたようで良かったです。
ではでは!

[6] Posted by yujiro : March 12, 2007 3:37 PM

はじめまして、minamiと申します。
いつもためになる情報をありがとうございます。
活用させていただいており、助けられています。
ありがとうございます。

ちょっとだけ関連しているかなと思い質問なのですが、カテゴリーとエントリー出力ファイル名を日本語にする方法はありますでしょうか?
イメージ的には、ウィキペディアのカテゴリーフォルダ名みたいな感じにしたいのですが、
環境設定>>カテゴリー>>出力ファイル名に日本語エンコードした"%??"と入力しても"%"の部分が自動で削除されてうまくいきません。

エントリー・アーカイブの方も同じです。

これは別途プラグインなどを作成しなくてはいけないのでしょうか?
それとも、モジュールの改造をしなくてはいけないのでしょうか?

方法を知っている方、ご教授いただければ嬉しいです。

[7] Posted by minami : July 5, 2007 5:04 PM

はじめまして。

Movable Type 4.01を使っています。

上記の方法でファイル名を「16194837.php」とする事が出来たのですが、パーマリンクが「post.php」のまま直ってくれません。

「ブログ記事の編集」上でも「出力ファイル名 post」となっています。

解決方法が分からないのですが、
どのようにしたらいいかご教授いただけないでしょうか。
よろしくお願いします。

[8] Posted by takafumi : November 16, 2007 11:36 PM

>takafumiさん
はじめまして。
ご質問の件ですが、ファイル名は「デザイン」→「テンプレート」→「アーカイブテンプレート」→「ブログ記事」のアーカイブマッピング部分を変更されましたでしょうか。
また「パーマリンクが「post.php」のままになっているページ」の再構築はされましたでしょうか。

なお、この記事はMT3の時のもので、MT4では解消しています。説明不足で申し訳ありません。
それではよろしくお願い致します。

[9] Posted by yujiro logo : November 17, 2007 2:54 AM

>yujiroさん

回答ありがとうございます。

>「ブログ記事」のアーカイブマッピング部分を変更されましたでしょうか。
はい「アーカイブマッピング」→「カスタム」→「%y/%m/%d%h%n%s%x」としています。新たに「ブログ記事」を作成すると、ファイル名は「16194837.php」で作成されるのですが、パーマリンクは「post_1.php」といったリンクで作られてしまい、リンクが切れてしまっています。

>なお、この記事はMT3の時のもので、MT4では解消しています。
MT3をさわった事がないのでよく分かっていないのですが、「出力ファイル名」で直すということなのでしょうか。

[10] Posted by takafumi : November 17, 2007 10:01 AM

>takafumiさん
こんにちは。
頂いた内容より推測すると、

「ブログ記事」テンプレートのアーカイブマッピングを誤って2つ作っている
「ブログ記事」テンプレート自体を2つ作っている

のいずれかではないでしょうか?

質問を換えると、「ブログ記事」テンプレートの「アーカイブマッピング」の「種類」欄に「ブログ記事」が表示されていると思いますが、そこにチェックボックスが表示されていないでしょうか。

MT3の話については、「この記事はMT3の時の不具合を書いているので、MT4ではこの不具合は改善されているので、対処を行う必要はありません」ということを述べています。

それではよろしくお願い致します。

[11] Posted by yujiro logo : November 19, 2007 12:00 PM

いつも参考にさせて頂いています。ありがとうございます。

少し初歩的なことなのですが、どうしてもわからなかったので
質問させていただきます。すみません。

MT4最新版を使用しています。
当該記事の設定をしまして、
ftp上でも、2008/01/XXXXXX.htmlというファイルがあり、
(拡張子は都合で.htmlのままにしております。)
パーマリンクもうまくいっています。
しかし「ブログ記事の編集」上では出力ファイル名:postのままなのですが、
これはそういうものなのでしょうか?

新しく記事を作成したら、post_1の表記になりましたが、
こちらも表ではうまくいっています。
すみませんがご教授下さい。

[12] Posted by ash : January 16, 2008 11:22 AM

>ashさん
こんばんは。
ご質問の件ですが、ブログ記事の出力ファイル名は、ブログ記事タイトルからMTが自動生成するようになっています。タイトルに半角文字がない場合は、post、post_1、post_2…という風に付与されます。

MT3ではブログ記事データのエクスポート→インポートを行うとファイル名が変わってしまうという不具合がありましたが、MT4以降はエクスポート→インポートを行ってもファイル名が変わることはありませんので、心配する必要はありません。
それではよろしくお願い致します。

[13] Posted by yujiro logo : January 16, 2008 11:11 PM

やはり不具合が起こりまして、
新規記事投稿時に
というファイルが生成されているにも関わらず、

当該記事へのリンク先が、全て
2008/01/post.html
となって、リンク切れを起こしてしまいます。

(手動で出力ファイル名を入れると、リンクは正常になります。)

私はアーカイブマッピングの指定をすれば、
全ての記事が自動的に「日付-時分秒」の記載になると思っていたのですが・・・。
そもそも「出力ファイル名」=「アーカイブマッピング」ではないのでしょうか?

[14] Posted by ash : January 17, 2008 12:24 PM

>ashさん
こんばんは。
ご質問の件ですが、「出力ファイル名」=「アーカイブマッピング」ではありません。厳密には、「出力ファイル名」は「アーカイブマッピング」でマッピングされたアーカイブ種別に設定されているパスの一部分になります。

また、上記の内容では現在の状況が不明なため、サイトのURLをご連絡頂けますでしょうか。あるいは、どこかの設定(アーカイブマッピング等)を変更されたのであれば、その具体的な設定内容をご連絡ください。
それではよろしくお願い致します。

[15] Posted by yujiro logo : January 18, 2008 11:56 PM

度々申し訳ありません。ご説明ありがとうございます。
出力ファイル名とアーカイブマッピングの違いの件、了解しました。

アーカイブマッピングが「%y/%m/%d-%h%n%s%x」の場合、
もし以下の題名と日付で投稿したら、
題名:Movabletypeについて 日付・時間:2008年1月21日 18:00:00
2008/01/21-180000_movabletype.html
になるということですよね?

もし、題名に英語が含まれていなかったら、
2008/01/21-180000.htmlになるんでしょうか?

仕事の関係でサイトのURLは載せられないため、
設定事項を書かせていただきます。
新規ブログをMT4にて作成し、
デザイン→テンプレート→アーカイブテンプレート→ウェブ記事
のアーカイブマッピングに「%y/%m/%d-%h%n%s%x」と設定しました。

新規投稿をすると、サーバ上に当該のファイル名のファイルは作成され、indexに記事も掲載されますが、
ブログの当該記事の本文へのリンクURLは、全て「post.html」となり、リンク切れとなります。

少し勘違いをしてたかもしれないのですが、よく読みましたら上記事は既存のブログについての記述でしたね。
やはり新規投稿の場合は、出力ファイル名を入れないといけないんですかね(>_<)

[16] Posted by ash : January 21, 2008 10:38 AM

>ashさん
こんにちは。
ご質問の件ですが、%y/%m/%d-%h%n%s%x に設定されたのであれば、パスに題名は含まれません(英語が含まれていても、含まれていなくても)。
#コメントの「ウェブ記事」は「ブログ記事」と読み替えました

また、新規投稿で出力ファイル名を設定する必要は、基本的にありません。これはアーカイブマッピングの「パス」で全て自動的にファイル名を生成するためです。

以下、気になる点をいくつか挙げておきます。

  • 「ブログ記事」のアーカイブマッピングはひとつだけでしょうか。二つある場合はどちらか一方を削除してください。
  • 「新規投稿をすると、サーバ上に当該のファイル名のファイルは作成され、indexに記事も掲載されますが、」とありますが、そのファイル名はどうなってますでしょうか。
  • 「ブログの当該記事の本文へのリンクURL」を表示しているページのテンプレートは、デフォルトテンプレートのままでしょうか?何かカスタマイズされていないでしょうか。

私の方で、頂いた情報で分かるのは上記までです。
どうしてもうまくいかないのであれば、MTを再インストールされることをお勧めします。
それではよろしくお願い致します。

[17] Posted by yujiro logo : January 22, 2008 1:28 PM

はじめまして(^-^)
いつも参考にさせていただいております。
私も同じようなところで?躓いている模様で…

アーカイブマッピングを、
%y/%m/%d_%h%n%s%x …としています。
インデックスからブログ記事へのパーマリンクは正常に、
マッピング通りにリンクされております。

この設定状態で新規投稿を行った場合、新規投稿時の出力ファイル名にも、
このマッピングが反映される、という解釈で良いのでしょうか?

当方の現状では、新規投稿を行うと、
インデックスからのパーマリンクは、マッピング通りにリンクされるのですが、
投稿したファイル名の方は「post-X」となっております。
新規投稿で下書きした後に、公開の都度、出力ファイル名を修正している状態です。

いろいろ検索して調べておりますが、探している答えが見つからず、
思わず書き込みさせていただきました…
引き続き調べてみます…

[18] Posted by やすこ : January 22, 2008 10:56 PM

>やすこさん
>ashさん
>takafumiさん
こんばんは。
同じ質問を頂いて気がつきました。
おそらく皆さんお使いのバージョンは4.01だと思いますが、MTのバグと思われます。
私の環境では発生しなかったので、気がつくのが遅れて申し訳ありませんでした。

もうすぐ4.1がリリースされるので、そちらにバージョンアップされることをお勧めします。
お役に立てず申し訳ありません。

[19] Posted by yujiro logo : January 24, 2008 1:03 AM

yujiroさん、お忙しい中お返事ありがとうございました(^-^)

ご指摘の通り、4.01を使用しております。
4.1がリリースされ次第、バージョンアップしてみます(^-^)

お返事いただいて、大変助かりました。
ありがとうございます(^-^)/

[20] Posted by やすこ : January 24, 2008 11:20 PM

お忙しい中コメントいただきありがとうございます。
仕事がたてこんできたので、確認が遅れましてすみません!
バグということで納得しました。4.1のリリースを待とうと思います。

[21] Posted by ash : January 31, 2008 1:14 PM

>ashさん
こんにちは。
ご連絡ありがとうございます。
なお4.1はすでにリリースされていますのでお試しください。
http://www.koikikukan.com/archives/2008/01/25-000020.php

それではよろしくお願い致します。

[22] Posted by yujiro logo : February 3, 2008 11:19 PM

4.01の時にPHP化に失敗していましたが、
4.01⇒4.1にバージョンアップ後、PHP化に成功しました。
yujiroさんのコメントで助かりました。ありがとうございます!!

4.01の時に作成したブログは問題が解決しないため、
新しくブログを作って、成功しました。

[23] Posted by こんち : February 4, 2008 10:42 AM

>こんちさん
こんばんは。
ご連絡ありがとうございました。
PHP化、うまくできたようで良かったです。
ではでは!

[24] Posted by yujiro logo : February 6, 2008 2:28 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)