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

ホームページのトップ階層にお知らせ一覧を書き出す方法

最終更新日: 2013-10-11

「すぐ使えるCGI」の書き出しディレクトリ変更の概要

CMS「すぐ使えるCGI」では管理画面から登録した内容を静的 HTML ファイルで書き出します。ツールから書き出すツールは一つのディレクトリの中にまとめて書き出す必要があるのですが、既存のホームページに導入するような場合は、この制限により既存のお知らせページなどのURLを変更する必要が出る場合があります。

このURL変更をしたくない場合に、設定ファイルで調整してディレクトリ階層を変える方法をご紹介します。

ディレクトリ変更の例

例えばトップディレクトリにホーム以外のページも全て配置しているサイトの場合、「すぐ使えるCGI」を導入しようとした場合にはディレクトリ階層の変更の必要がありました。

1階層構成のホームページのディレクトリの例

ホームページ http://www.example.jp/index.html 
会社概要     http://www.example.jp/about-us.html 
サービス案内 http://www.example.jp/services.html 
お問合せ先   http://www.example.jp/contact.html 
お知らせ     http://www.example.jp/news.html ※手動編集の時


「すぐ使えるCGI」を導入する場合の構成例

このようなサイトに、「お知らせ」だけ CMS で更新するために「すぐ使えるCGI」を導入する場合は、ディレクトリを一つ作ってその中に管理画面から更新したファイルを書き出していきます。

ホームページ http://www.example.jp/index.html 
会社概要     http://www.example.jp/about-us.html 
サービス案内 http://www.example.jp/services.html 
お問合せ先   http://www.example.jp/contact.html 
お知らせ     http://www.example.jp/news/index.html ※CMSで更新するページ


この構成に問題がある訳ではありませんが、他のページからのリンクを書き換える必要が出ます。
これを、URL は元のままリンク書き換えをせずに、CMS で更新されるページにアクセスする方法をご紹介します。

階層の変更設定を行った後のディレクトリの例

ホームページ http://www.example.jp/index.html 
会社概要     http://www.example.jp/about-us.html 
サービス案内 http://www.example.jp/services.html 
お問合せ先   http://www.example.jp/contact.html 
お知らせ     http://www.example.jp/news.html ※お知らせにアクセスするためのURL
         http://www.example.jp/webdir/news.html ※CMSで更新するお知らせページ


設定準備:.htaccess 機能が使用できるかの確認

このページでご紹介する方法の設定には、以下の2つの条件が揃っている事が必要です。

  • Web サーバが Apache
  • .htaccess ファイルによるURLの調整が可能

サーバによっては .htaccess ファイルでの設定を許可していない場合がありますので、予めお使いのサーバ会社またはサーバ管理者さまに「.htaccess で mod_rewrite の設定は可能か」と問合せて条件がそろっているかどうかを確認して下さい。

ディレクトリ階層変更の設定方法:書き出されるファイルの調整

まずはいくつか CMS 側の書き出し設定を変更します。

書き出しファイル名の変更(admin/admin.cgi の編集)

admin/admin.cgi を編集し、「全一覧」の書き出しファイル名をアクセスしたい URL のファイル名と一致させて下さい(下記例青字部分)。

admin/admin.cgi 変更後例

#--------------------------------------------------------[line 155]--
# 一覧のファイル名
#--------------------------------------------------------------------
# 登録記事の全一覧のファイル名です。
# $conf{web_dir} 内に、ここで指定したファイル名で書き出されます。
#
# 一覧の書き出しが不要な場合は、ファイル名を削除して下さい。
# 書き出し不要な場合の設定) $conf{index_filename} = '';

$conf{index_filename} = 'news.html';

「全一覧」のパス変更

「全一覧」内に画像やリンクの指定があれば、そのパスがサーバルートからの絶対パスになるように変更します。
このために編集するテンプレートファイルは以下の2ファイルです。下記例を参考に編集して下さい。

  • templates/article/artcile_list.html
  • templates/article/artcile_list.txt

templates/article/artcile_list.html のパス変更例

templates/article/artcile_list.html 内に他のページや画像へのリンクに相対パスがあればサーバルートからの絶対パスに変更して下さい。

ポイント 変更前例 変更後例
外部ファイル
(JavaScript、CSSなど)
<script src="../js/jquery.js"> <script src="/js/jquery.js">
画像 <img src="../images/logo.png"> <img src="/images/logo.png">
リンク <a href="../services.html"> <a href="/services.html">

templates/article/artcile_list.txt のパス変更例

templates/article/artcile_list.txt は、href 属性や src 属性に「サーバルートから書き出しディレクトリまでのパス」(赤字)を追加して下さい。

変更前 変更後
<a href="%_d_%.html">%_subject_%</a> <a href="/webdir/%_d_%.html">%_subject_%</a>
<img src="%_d_%/%_imagename_escaped_#_%"> <img src="/webdir/%_d_%/%_imagename_escaped_#_%">
<img src="%_d_%/%_thumbnail_escaped_#_%"> <img src="/webdir/%_d_%/%_thumbnail_escaped_#_%">
※「#」部分は1〜3の数字

アップロード

編集した以下のファイルをサーバに上書きアップロードして下さい。

admin/admin.cgi
templates/article/artcile_list.html
templates/article/artcile_list.txt

再構築

管理画面の一覧から「再構築(テンプレート変更反映)」ボタンを押して下さい。

確認

「全一覧」が変更したファイル名で書き出されている事を確認して下さい。
確認できたら次の「ディレクトリ階層変更の設定方法:.htaccess の設定」に進んで下さい。

ディレクトリ階層変更の設定方法:.htaccess の設定

.htaccess の場所と設定手順

.htaccess は、サーバのトップ階層、上記例だと http://www.example.jp/.htaccess に当る位置にアップロードします。

既に .htaccess ファイルがある場合

もし既にこの場所に .htaccess ファイルがある場合は、一旦ダウンロードして下記の「.htaccess の内容」を追記して下さい。

.htaccess ファイルを新規作成する場合

まだ .htaccess ファイルが無い場合は、下記の内容のファイルを作成してアップロードして下さい。
この時、Windows などでは名前がドットから始まるファイルを作成できませんので、別の名前で作成してからアップロードし、その後サーバ上で名前を変更して下さい。

.htaccess の内容

以下の内容を .htaccess ファイルに記載して下さい。
ファイル名のドットより前の部分(青字)はアクセスするファイル名に変更して下さい。ディレクトリ名(青字部分)は書き出しディレクトリに変更して下さい。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(news.*)\.html(.*)$      webdir/$1.html$2 [L]
</IfModule>

アップロード

.htaccess ファイルをサーバにアップロードして下さい。(既にファイルがあったかどうかによって、上記のように作業して下さい。)

確認

元々の URL http://www.example.jp/news.html にアクセスして CMS で更新したページが表示されることを確認して下さい。

関連リンク

さらに詳しく