小規模Webサイト向け CMS 「すぐ使えるCGI」のサポート情報

詳細ページのファイル名を変更する方法(規則の変更)

最終更新日: 2016-04-22

「すぐ使えるCGI」で書き出される記事の詳細ページ(個別ページ、記事ページ)のファイル名は webdir/1.html、2.html、... となります。「1」や「2」は自動的に割り振られる記事の連番です。

Ver. 5.0 からはこのファイル名の命名規則を変更できるようになりました。拡張子を変更して .php ファイルとして動作させたり、.shtml に変更して SSI を有効にする事ができます。また、日付情報や固定の文字列もファイル名に含められるようになりました。

対応製品

2016年4月現在の対応製品は下記の通りです。

類似の方法

このページでは、自動的に決定されるファイル名の規則を変更する方法を説明しています。記事登録時に毎回ファイル名を指定する方法は、下記ページをご覧下さい。

記事ごとにページのファイル名(URL)を指定する方法

ファイル名規則の変更方法

ファイル名を変更するには admin/admin.cgi の環境変数を編集して下さい。

詳細ページの拡張子を変更する編集例

ファイル名規則の設定は 215行目付近にあります。設定には、デザインテンプレートの場合と同様の「テンプレート変数」が使えます。下記例のように設定すると、書き出される詳細ページのファイル名は webdir/1.php、2.php、... となります。

#--------------------------------------------------------[line 215]--
# 記事ページのファイル名
#--------------------------------------------------------------------
# 記事ページのファイル名の規則を指定して下さい。
# $conf{web_dir} 内に、ここで指定したファイル名で書き出されます。
# 指定には、記事ごとに別々の値になるように日付や連番を表すテンプレート
# 変数を付けて下さい。
# 
# 使用できるテンプレート変数は以下の通りです。
# %_d_%        記事の管理用連番
# %_yyyy_%     記事の年(入力された値。以下同様。)
# %_mm_%      記事の月
# %_dd_%       記事の日
#
# 記事の書き出しが不要な場合は、ファイル名を削除して下さい。
# 書き出し不要な場合の設定) $conf{article_filename} = '';

$conf{article_filename} = '%_d_%.php';

# ここで指定した値は各記事を編集時に個々に変更する事ができますが、
# ここでファイル名を指定しなかった場合は、管理画面からファイル名を
# 指定しても記事ページは一切書き出しされません。
# 「最新記事」も書き出されなくなります。

編集後の作業

admin/admin.cgi を変更したら、サーバに上書きアップロードの上、「再構築(テンプレート変更反映)」を行って下さい。新しいファイル名で記事が書きだされます。

なお、運用途中でファイル名を変更した場合、旧い名前のファイルは自動的には削除されません。FTPなどで手動で削除して下さい。

ファイル名に使用できるテンプレート変数

ファイル名の指定には以下のテンプレート変数が使えます。これらのテンプレート変数を利用して、日付情報もファイル名に含める事ができます。

テンプレート変数置き換わる値
%_d_%記事の管理用連番
%_yyyy_%記事の年(入力された値。以下同様。)
%_mm_%記事の月
%_dd_%記事の日

日付情報をファイル名に含める例

例えば詳細ページファイル名に記事の日付を含める場合は、下記例の様に指定して下さい。

$conf{article_filename} = '%_yyyy_%-%_mm_%-%_dd_%-%_d_%.html';


重要: 連番「%_d_%」をファイル名に含めなかった場合の注意点

テンプレート変数「%_d_%」は自動的に割り振られる記事の連番に置き換わります。この記号をファイル名の指定に含めれば、詳細ページのファイル名が他の記事と重複する事はありません。

テンプレート変数「%_d_%」をファイル名指定に含めなかった場合、他の記事とファイル名が同じになってお互いを上書きしてしまう可能性があります。このため、同じ日付の記事は絶対に登録しないという運用の場合以外は、ファイル名規則の指定に「%_d_%」を含めて下さい。

ファイル名に共通の接頭辞(プレフィックス)を付ける方法

ファイル名の指定にはテンプレート変数だけでなく固定の文言も含めることができます。例えば固定の接頭辞(プレフィックス)「news-」を付けたい場合は、下記例の様に指定して下さい。

$conf{article_filename} = 'news-%_yyyy_%-%_mm_%-%_dd_%-%_d_%.html';

さらに詳しく