2013-06-28

IIS7 でサイトページの内容の一部を自動的に書き換える方法

 Apache では、mod_layout モジュールを使ってページ内容の一部を書き換えたり、URL を変更したりすることができますが、 IIS7 単体ではできません。

 しかし、Microsoft サイトで提供されている URL 書き換えモジュール(URL Rewrite Module) を使うと、同様の操作が可能となります。

 今回は、この URL 書き換えモジュールを使って、ページの文末を書き換える方法について説明します。


1. URL Rewrite Module 2.0 をマイクロソフト公式ダウンロードサイトよりダウンロードし、IIS7 を運用中のサーバにインストールします。

Microsoft URL Rewrite Module 2.0 for IIS 7 (X64) ダウンロード
Microsoft URL Rewrite Module 2.0 for IIS 7 (X86) ダウンロード


 インターネット インフォメーション サービス (IIS) マネージャを起動すると、以下のように、URL 書き換えアイコンが表示されていればインストール成功です。



2. サーバ全体で書き換えを適用する場合は、左ペインのサーバ名をクリックしてから、URL 書き換えアイコンをダブルクリックします。

 URL 書き換えの規則を管理するウィンドウに切り替わりますので、画面下部の「HTTP 応答のヘッダーまたはコンテンツに適用される送信規則」のセクションをクリックし、次に右ペインより「規則の追加...」をクリックします。



3. 送信規則のセクションで「空の規則」が選択されていることを確認し、“OK” をクリックします。


  送信規則の編集ウィンドウに切り替わります。



4. 名前と必須条件を決めます。

 [名前(N)] に任意の名前を入力し(下図では adcode)、[必須条件(P)]の一覧より「<新しい必須条件の作成...>」を選択すると、下図のように必須条件編集ダイアログが表示されます。



 ここで、[名前] に任意の条件名を入力し(下図では bodyEnd)、[仕様] は「正規表現」が選択されていることを確認してから、“追加”ボタンをクリックすると、下図のような正規表現指定ダイアログが表示されますので、以下のように入力します。



 [条件の入力(C)] {RESPONSE_CONTENT_TYPE} (デフォルト)
 [入力文字列が次の条件を満たしているかどうかをチェック] パターンに一致する(デフォルト)
 [パターン(T)] ^text/html
 [大文字と小文字を区別しない] チェック付き(デフォルト)

 ここまで入力が終わったら、“OK” ボタンをクリックすると、必須条件の追加ダイアログに戻りますので、内容を確認してから “OK” をクリックして閉じます。



5. 書き換え用のテキストを設定します。

 画面中央の[パターン]に書き換えるタグを入力し(下図では
)、アクションのセクションでは、[アクションの種類(Y)] は「書き換え」(デフォルト)、[アクションのプロパティ]には任意の文字列を入力します。


 ここでは、ページの末尾を Powered by Tsuchiya Planning Company </body> で書き換えるという規則を指定したものです。

 ヘッダ部分を書き換えるのであれば、[パターン] を </head>、にし、[アクションのプロパティ] に任意の文字列や制御コードと記述し、</head> で閉じるようにします。
 すべての操作が終わったら、ウィンドウ右上の“適用”をクリックします。


6. ページをロードして、設定が反映されていることを確認します。

 試しに、http://localhost/iisstart.htm にアクセスしてみましょう。
 以下のように、指定した文字列がページの最後に表示されていれば成功です。




 この方法を応用すると、サイトのすべてのページにアクセス解析のトラッキングコードを自動挿入したり、ページの先頭や末尾に広告を自動挿入したりすることができます。




2013-06-05

売上猫くん Standard R5(FileMakerランタイム)からPDF出力

  『売上猫くん Standard R5』をダウンロードされた方から、「PDF出力はできないの?」といったお問い合わせを受けることがあります。FileMakerでランタイムされたシステムでは、PDF出力の機能は使用できなくなるのですが、PDF 作成ソフトを利用すると、PDF 出力が可能となります。このPDF作成ソフトでおススメなのが、PDFCreatorというフリーソフト。 フリーといえども侮ることなかれ。 小社の得意先では毎月末、千以上のPDFファイル(ページ数なら数千ページ)をPDFCreator でバッチ作成しています。 が、実行環境によっては出力できない可能性もあります。導入にあたっては、予めPDFCreatorをダウンロードし、十分テストを行うよう、お願いいたします。


【PDFCreatorによる請求書のPDF出力】

PDF Creator を使った PDF 出力


PDFCreatorは『売上猫くん Standard R5』とかFileMakerランタイムとかに関係なく、印刷コマンドを実行するソフトで利用可能(な筈)です。



(亀澤)

2013-05-14

ポータル行を削除しないバグを回避する

FileMaker にはポータル行を削除できないというバグがあり、米国のFM公式サイトではかなり以前から問題になっており、今現在もこの問題は解決されていない。


本家のスレッド
Delete portal row issue


そこで一子相伝の回避策。


  1. ポータル行となっているテーブルをピックアップ
  2. 上記でピックアップしたテーブルがレイアウト設定の[レコード表示(H):]に指定されているレイアウトを作成する。例えば、システムに売上明細、見積明細、受注明細というテーブルがあり、これらがポータルとして使用されていれば、ポータルがあるレイアウトとは別に、売上明細、見積明細、受注明細というレイアウトを用意し、その[レイアウト設定]―[レコード表示(H):]でそれぞれのテーブルを指定する。
  3. システムのスタートアップスクリプトで、上記で作成したレイアウトを開くようにする(開いた後は即刻閉じて良い)。
これによりシステムファイルを閉じなければ削除できなかったポータル行が、普通に削除できるようになる。
「言うとおりにやったが、削除できないじゃねーか!」とお怒り方がおられれば、ご一報のほど。

(土屋)