HTMLファイルでPHPを実行する方法!.htaccessに3行足すだけ!

HTMLファイル内ではPHPは(当然ですが)実行できません。

しかし、.htacdessの設定によってはHTMLファイル内でもPHPを実行できるようにする方法があります!

今回はHTMLファイルの状態でPHPを動かすため、.htaccessの設定を変更する方法を紹介します。

サイトのリニューアルなどで

「HTMLファイルをPHPに変更するとSEO的によくない…URLも変更したくない…けどPHPは使いたい!」

といった場合に活用してください。

 

.htaccessとは

.htaccessとはApacheというWebサーバーの設定ファイルです。世界的にもシェア率が非常に高く、もちろん日本でも至る所で使われています。

そのため.htaccessについて知っていれば、例えレンタルサーバーの会社を変えたとしてもファイル内を編集することができるので何かと便利です。

 

.htaccessでできることは大体以下の通り。

  • アクセス制限
  • リダイレクト設定
  • Basic認証
  • MINEタイプの設定

 

別のページにリダイレクトさせたり、特定のフォルダだけアクセスを制限したりすることができます。

今回は上記の「MINEタイプの設定」を行うことでHTMLファイル内でもPHPを実行できるようにします。

 

.htaccessのMINEタイプを設定

HTMLファイル内でPHPを実行するためには、「『.html』という拡張子のファイルにアクセスされた時に、それをPHPファイルとして認識する」という設定を行います。

設定の方法は2種類あるので、順番に解説します。

 

AddTypeを使う方法

HTMLファイルなら「.html」、PHPファイルなら「.php」というように、サーバーは拡張子からMINEタイプを判定し、処理方法をその都度切り替えています。

AddTypeを使うことでこの処理方法を変更することができます。

HTMLファイル内でPHPを実行するには以下のコードを記述します。

<FilesMatch "\.html$">
  AddType application/x-httpd-php .html
</FilesMatch>

 

1行目の「<FilesMatch “\.html$”>」と3行目と「</FilesMatch>」はセットで使います。

アクセスされているファイルの拡張子が『.html』であると判定するために必要な記述です。

2行目の「AddType」が「MINEタイプを設定する」という記述です。

書き方は以下の通り。

AddType MIME-type extension [extension] …

  • AddType:MIMEタイプを設定するための宣言
  • MIME-type:MIMEタイプの文字列
  • extension:MIMEタイプを設定する拡張子、複数指定する場合は半角スペースで区切る

 

上記で紹介したコード『AddType application/x-httpd-php .html』は『.html』のファイルにPHPのMIMEタイプを設定するという意味になります。

このコードのおかげでサーバーはHTMLファイルをPHPファイルだと認識し、PHPを実行できるようになります。

 

AddHandlerを使う方法

AddTypeとは別の方法で、AddHandlerを使う方法があります。

以下のコードを記述するだけです。

<FilesMatch "\.html$">
  AddHandler php5-script .html
</FilesMatch>

 

1行目と3行目はAddTypeを使う方法と意味は同じです。

2行目『AddHandler』とは動作の種類を設定するという意味です。動作をまとめて『ハンドラ』と呼んだりします。

AddHandlerは次のようなルールで記述します。

AddHandler handler-name extension [extension]…

  • AddHandler:ハンドラ(動作の種類)を設定するための宣言
  • handler-name:ハンドラの文字列
  • extension:ハンドラを設定する対象の拡張子、複数指定する場合は半角スペースで区切る

 

『php5-script』はPHP5を使用するという意味です。

PHPのバージョンが違う場合は記述が変わりますので、サーバーの設定に併せて適宜変更するようにしましょう。

このコードでもサーバーはHTMLファイルをPHPファイルだと認識し、PHPを実行できるようになります。

 

まとめ

最後に注意点ですが、レンタルサーバーによっては上記の方法が使えない場合も中にはあります。

その場合はレンタルサーバーのQ&Aを参考にするなり、レンタルサーバーの運営会社に問い合わせるなりしてみてください。

上記の方法は「拡張子やページのURLを変更したくないが、HTMLファイルでもPHPを使えるようにしたい!」という場合に有効です。

SEO対策の面も考えルト、URLを変更しないでPHPが使えるようになるのはかなり嬉しいですね。