【.htaccess】HTMLファイルで
PHPを動かす方法

2020-05-09

通常、ファイル拡張子が「.html」となる「HTMLファイル」では、PHPを動かすことはできません。

ですが、「.htaccessファイル」の設定によっては、HTMLファイルでもPHPを使う事が出来るようになります。

ここでは、「.htaccess」ファイルを使って、HTMLファイルでもPHPプログラムを動かせるようにする、設定の書き方をまとめています。

\項目をタップするとジャンプできます/

HTMLファイルでPHPを動かす書き方

HTMLファイルでPHPを動かす「.htaccessファイル」の書き方には、いくつか種類があります。

お使いのサーバーとの相性によって動くものと動かないものがあるので、まずは1つずつテストしてみましょう。

どれも動かない場合は、お使いのサーバーのサポートに「HTMLファイルでPHPを動かしたい」主旨を問い合わせるのが確実です。

HTMLでPHPを動かす書き方1
AddHandler

「.htaccessファイル」に以下を記述します。

.htaccess

#HTMLファイルでPHPを動かす
 <FilesMatch "\.html$">
AddHandler php7-script .html
 </FilesMatch>

「AddHandler」はファイルの動作設定をする書き方です。

ここでは拡張子が「.html」のファイルを、PHPとして動作するように指定しています。

この書き方は、「php7」の部分で動作させるPHPバージョンを指定します。

サーバーで未対応のバージョンを記述すると動かないので、お使いのサーバーの対応バージョンに合わせておきましょう。

例えばPHP5を使う場合には、「AddHandler php7-script .html」の「php7」の部分を「php5」と記述します。

私は普段ローカル環境にXAMPPを利用しているのですが、XAMPPではこの書き方だと、うまく動作します。

HTMLでPHPを動かす書き方2
AddType

さきほどの書き方と似ていますが、今度は「.htaccessファイル」に以下を記述します。

.htaccess

#HTMLでPHPを動かす2
 <FilesMatch "\.html$">
AddType application/x-httpd-php .html
 </FilesMatch>

「AddType」は、ファイルのMIMEタイプ(ファイル形式などの情報)を設定します。

この指定では「.html」ファイルにPHPのMIMEタイプを設定しているので、サーバーは「php」ファイルとして認識して、PHPプログラムを動かす事ができます。

この書き方は私の環境では、ローカル環境、公開サーバー(スターサーバー)ともに、うまく動かなかった書き方です。

HTMLでPHPを動かす書き方3
fcgid-script

こちらは最初の書き方「AddHandler」を使いますが、内容が違います。

.htaccess

#HTMLでPHPを動かす3
 <FilesMatch "\.html$">
AddHandler fcgid-script .html
 </FilesMatch>

私の使っているスターサーバーでは、上記2つとも上手く動作しなかったのですが、こちらの書き方はうまく動作しました。

※XAMPPではうまく動きませんでした。

HTMLファイルでPHPを動かすメリット

「HTMLファイルでPHPを動かす」設定は、HTMLファイルでページを作り始めたものの、途中でPHPを使いたくなった時に、とても便利です。

私は、HTMLファイルで作っていたサイトを途中でPHPファイルに切り替えて、全てのページのインデックスがゼロになった事があります。

PHPを使いたいからとファイル拡張子を変更すると、ページURLまで変わってしまい、インデックスも1からやり直しになってしまいます。

旧URLへアクセスしてくれたユーザーも、404ページへ飛んでしまいますね。

リダイレクト設定をすれば、旧URLへアクセスがあった時に自動的に新URLへ飛ばしたり、ページ評価を受け継ぐ事もできますが、ページ数が多いと、なかなかの手間になってしまいます。

「.htaccess」でHTMLファイルからPHPを使えるようにしておけば、コピペで一瞬で実装できるので、手間いらずなのが魅力です。

HTMLファイルでPHPを動かす注意点

HTMLファイルでPHPを使うのは、PHPファイルでPHPを使うよりもサーバーに負荷がかかるという情報もあります。

新しいページでPHPを使う場合には、素直にPHPファイルで作成する方が、サーバー負荷を軽減できるかも知れません。

また、「.htaccess」の書き方とサーバーの相性によっては、ページの表示が崩れたり、意図しない動作が起きたりもします。

本番用の「.htaccess」にいきなり書き足すのではなく、まずはエラーが起きてもいいディレクトリやURLで、小規模に動作を確認してみましょう。