【.htaccess】HTMLファイルで
PHPを動かす方法
通常、ファイル拡張子が「.html」となる「HTMLファイル」では、PHPを動かすことはできません。
ですが、「.htaccessファイル」の設定によっては、HTMLファイルでもPHPを使う事が出来るようになります。
ここでは、「.htaccess」ファイルを使って、HTMLファイルでもPHPプログラムを動かせるようにする、設定の書き方をまとめています。
HTMLファイルでPHPを動かす書き方
HTMLファイルでPHPを動かす「.htaccessファイル」の書き方には、いくつか種類があります。
お使いのサーバーとの相性によって動くものと動かないものがあるので、まずは1つずつテストしてみましょう。
どれも動かない場合は、お使いのサーバーのサポートに「HTMLファイルでPHPを動かしたい」主旨を問い合わせるのが確実です。
HTMLでPHPを動かす書き方1
AddHandler
「.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ファイル」に以下を記述します。
#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」を使いますが、内容が違います。
#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で、小規模に動作を確認してみましょう。