« [PHP]拡張モジュールを自作する | トップページ | 発売を開始します。 »

2007年2月15日 (木)

拡張子がHTMLのファイルをPHPとして実行させる

PHP を Apache 上で動作させるときには。モジュールとして組み込む方法が一般的だと思います。

通常は、「AddType」を用いて PHP ファイルを認識させます。「httpd.conf」ファイルに以下のような文を追加します。

AddType application/x-httpd-php .php

しかし、これでは明らかにPHPを使用していることがわかってしまいます。それにHTMLファイルの中に一部PHPを埋め込んで動作させたい場合があると思います。
そういった場合には、httpd.confファイルにHTMLの拡張子である「.html」を追加します。

AddType application/x-httpd-php .php .html

このままだとすべての「.html」という拡張子がついたファイルがいったんPHPで読み込まれることになるので無駄な処理が実行されてしまいます。

こういった場合は、特定のディレクトリのファイルだけ対象になるように「.htaccess」ファイルに上記の設定を行います。

このときhttpd.confファイルの設定で該当のディレクトの<Directory>セクションにあるAllowOverrideディレクティブに「FileInfo」が指定されていない場合動作しないので気をつけてください。自分でサーバーを管理していない場合は、管理者にお問い合わせください。

<Directory>セクションとAllowOverrideディレクティブの詳しいことは、Apacheのドキュメントに書かれているのでそちらを参考にしてください。
<Directory>セクションのドキュメント
AllowOverrideディレクティブのドキュメント

しかし、これでもまだ関係ないファイルが多い場合などは無駄な処理が実行されてしまいます。こういった場合は、.htaccessファイルに<Files>セクションを追加することで指定のファイルだけをPHPとして処理することが可能です。

<Files form.html>
    ForceType  application/x-httpd-php
</Files>

こうすることで特定のファイルだけをPHPのファイルとして実行させることが可能です。<Files>セクションのファイル名は正規表現を使うことができるようです。

<Files>セクションとForceTypeディレクティブの詳しいことは、Apacheのドキュメントに書かれているのでそちらを参考にしてください。
<Files>セクションのドキュメント
ForceTypeディレクティブのドキュメント

これでスマートにPHPを実行させることができます。

|

« [PHP]拡張モジュールを自作する | トップページ | 発売を開始します。 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/191694/13914556

この記事へのトラックバック一覧です: 拡張子がHTMLのファイルをPHPとして実行させる:

« [PHP]拡張モジュールを自作する | トップページ | 発売を開始します。 »