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

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

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

ディレクトリ変更の例

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

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

CMS導入前の、手動編集している以下の様なホームページ(Webサイト)があったとします。

ホームページ 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 ※手動編集の時

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

このようなWebサイトに、「お知らせ」(ニュース、新着情報、更新履歴)だけ CMS で更新するために「すぐ使える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/index.html ※CMSで更新するページ

この構成に問題がある訳ではありませんが、他のページからのリンクを書き換える必要が出ます。

これを、URL は元のままリンク書き換えをせずに、CMS で更新されるページにアクセスする方法をご紹介します。

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

階層の変更設定を行うと、以下の様なファイル構成で書き出しながら、アクセス用のURLは元の「http://www.example.jp/news.html」を使う事ができます。

ホームページ 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の調整が可能(mod_rewrite 機能)

サーバによっては .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 属性に「サーバルートから書き出しディレクトリまでのパス」(赤字)を追加して下さい。なお、元の 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_#_%">

※「#」部分は数字

アップロード

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

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

再構築

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

確認

「全一覧」が変更したファイル名で書き出されている事を確認して下さい。

確認できたら次の「.htaccess の設定」に進んで下さい。

.htaccess の設定

次にサーバに、階層変更のための .htaccess ファイルを設定します。

.htaccess の場所と設定手順

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

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

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

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

まだ .htaccess ファイルが無い場合は、下記の内容のファイルを作成してアップロードして下さい。

名前がドットから始まるファイルを作成できない場合は、別の名前で作成してからアップロードし、その後サーバ上で名前を変更して下さい。

.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 で更新したページが表示されることを確認して下さい。