「HTMLファイルのままphp includeを使いたい」 「.htmlで共通パーツ管理したいけど動かない」 そんな悩みを解決します。 私が構築していた過去のサイトは静的HTMLで作っていました。 当時は静的HTMLサイトを数十ページ単位で運営しており、 ヘッダー・広告コード・フッター修正のたびに 全HTMLを書き換える必要がありました。 そこで、既存URLを維持したまま 共通パーツだけPHP include化する方法を採用しました。 なんとか一気にシステム化せずに共通パーツ化だけしたかったという経緯と経験から本内容を明記しています。 「HTMLファイルのままphp includeを使いたい」 「.htmlで共通パーツ管理したいけど動かない」 そんな悩みを解決します。
Webサイトのヘッダー・フッターなどの共通パーツをphp includeで管理したい——しかし拡張子が.htmlのままではPHPが動作しません。本記事では、MAMPのローカル環境とConoHa WINGの本番環境それぞれで、HTMLファイル内でPHPを動作させる設定方法を解説します。
目的:HTMLでphp includeを使いたい
HTMLファイルの共通部分をphp includeで管理するのが目的です。具体的には以下のような記述でインクルードファイルを読み込みます。
<?php $a = $_SERVER['DOCUMENT_ROOT']; include($a."/ディレクトリ名/ファイル名.shtml"); ?> // あるいは短縮形 <?php include($_SERVER['DOCUMENT_ROOT']."/ディレクトリ名/ファイル名.shtml"); ?>
前提:httpd.conf設定
.htaccessを読み込むため、/Applications/MAMP/conf/apache/httpd.confで以下の編集を行います。
<Directory /> Options Indexes FollowSymLinks AllowOverride None </Directory>編集後
<Directory /> Options Indexes FollowSymLinks AllowOverride All </Directory>
AllowOverride Allにすることで.htaccessの読み込みが有効になります。
準備:ファイル構成と基本記述
htdocsに以下の構成でファイルを作成します。
htdocs/
├── index.html
└── include/
└── test.shtml
index.htmlには以下を記述します。
<?php include($_SERVER['DOCUMENT_ROOT']."/include/test.shtml"); ?>
500エラーを解消する
MAMPサーバーを起動すると500エラーが発生する場合があります。原因は.htaccessに記述されたRewriteRuleをMAMPが処理できないためです。
/Applications/MAMP/conf/apache/httpd.confで以下の行をコメントアウトすることで解消します。
MAMP環境で特定設定により500エラーが発生する場合があります。環境依存のため、mod_rewrite設定や.htaccess内容を確認してください。
# LoadModule rewrite_module modules/mod_rewrite.so
MAMP環境でHTMLファイルにPHPを動作させる
MAMPではデフォルトでHTMLファイル内のPHPは動作しません。.htaccessに以下を追記することで有効になります。
AddHandler php-fastcgi .html .htm
MAMPを再起動するとHTMLファイル内のPHPが動作し、php includeが適用されます。
ConoHa WINGでHTMLファイルにPHPを動作させる
ConoHa WINGの本番環境では、MAMP向けの設定とは異なる記述が必要です。.htaccessに以下を追記します。
AddType application/x-httpd-lsphp .html
この設定を行うことで、ConoHa WINGのサーバー環境下でもHTMLファイル内のPHPが動作し、php includeが適用されます。
まとめ
- HTMLでphp includeを使うには
.htaccessの追記が必要 - MAMP環境:
AddHandler php-fastcgi .html .htm - ConoHa WING環境:
AddType application/x-httpd-lsphp .html - 両者は共存できないため、環境に応じてコメントアウトして切り替える
※本データは2026年時点での複数サイト運用結果をもとにしています。
よくある質問(FAQ)
Q. .phpにリネームすればいいのでは?
A. その方法でも可能ですが、既存サイトの構造を変えたくない場合に本記事の方法が有効です。
Q. SEOに影響はありますか?
A. HTMLのままでもPHPが動作するだけなので、基本的にSEOへの影響はありません。