拡張子.htmlでPHPを実行させる方法 (Apache httpd)

はじめに

 WEBページ作成当初は静的なHTMLでデザインを作成していたけど、追加要求や共通部分の増加に伴い処理をPHPに変更したい場合があると思います。 しかし既に他のWEBページから .html のページへリンクが張られていたり、既に検索エンジンに登録されていたりして URL (拡張子)を変更したくない場合に、拡張子を .html のまま PHP を実行させるようにすると便利です。 本稿ではその方法について解説します。

Apache の設定

 WEBサーバとして Apache を利用し、Apache 上で PHP を実行している場合、libphp4.so や libphp5.so のモジュールを Apache で読みむようにしていると思います。 (次のような記述が httpd.conf などにあると思います)

LoadModule php5_module modules/libphp5.so

 PHPモジュールを読み込む記述の後に、拡張子 .php のファイルを PHP スクリプトとして実行させるための記述があります。 AddHandler で次のように指定している行は無いでしょうか?

AddHandler php5-script .php

 この行が、拡張子 .php のファイルを PHP の処理に関連付けている設定ですので、 .html ファイルも PHP に関連づくようにここの設定を次のように変更すれば、.html という拡張子で PHP の処理が実行されるようになります。

AddHandler php5-script .php .html

 しかし Apache そのものの設定を書き換えてしまうとサイト全体に影響を及ぼしてしまう場合があるので注意が必要です。 VirtualHost の設定などにより複数の WEB サイトを運営している場合などは、特定のサイトのみにこの設定をするようにするなど、影響範囲を必要最低限にする考慮をした方が良いでしょう。

...
<VirtualHost *:80>
  ServerName weblabo.oscasierra.net
  AddHandler php5-script .php .html
  (略)
</VirtualHost>
...

おわりに

 本稿では .html を PHP の処理に関連付ける設定について解説しましたが、拡張子を変更しても大丈夫な段階の場合は拡張子を変更した方が良いと私は思います。 ファイルの拡張子は、ファイルの中身にどんな処理が記述されているのかを見分けるのに便利な為です。 既に URL を公開している場合でも Apache Rewite の設定で変更後の URL に誘導することもできます。 一度あるべき姿を考えた上で方法を考えて頂ければと思います。

PHP環境構築トップページへ戻る

著者 : OSCA

OSCA

 初級WEBエンジニアです。最近は Android, iOS, WEBアプリの作成に力を入れています。 個人として何か一つでも世の中の多くの人に使ってもらえるアプリを作ろうと日々奮闘中です。