拡張子がhtmlのままphpを動かす「htaccess」の記述について解説!

HTML内のPHPプログラムを動かす方法

みんな大好きPHPプログラム、使い始めると便利なので、今のWEBサイトにはかかせない存在です。

ちなみにPHPはサーバー側で動作します、下記参照。その証拠にJavaScriptはオフラインでも動作しますが、PHPはオンラインでないと動作しません。

スクリプトの動作ロケーション!

  • JavaScript→クライアント側(ブラウザ)
  • PHPプログラム→サーバー側

さて、ここからが本題!

HTMLファイルにPHPプログラムを埋め込んで動作させたいと思ったことはありませんか?

例えばこんな時!拡張子がphpだと困る理由

  • 拡張子はhtmlに統一している
  • .phpはサイトの信頼性に欠ける
  • 拡張子がphpだとSEO上問題がある
htmlでphpを動作させるには!

レンタルサーバー内の対象ドメイン(トップページの階層)に「.htaccess」ファイルを設置し、コードを書き込むだけで、htmlファイル上でPHPプログラムが動くようになります。

ちなみに「.htaccess」(ドット・エイチ・ティ・アクセス) とは、Webサーバー側において、様々な設定が行えるファイルのことです。

従来はサーバーソフトウェアとして「Apache」がシェアを独占していましたが、最近は開発が進み速さのある「Nginx」「LiteSpeed」がシェアを伸ばしてきました。

そんなサーバーソフトウェア多様化に伴い「.htaccess」のコマンド記述もそれぞれ異なります。

下記では、レンタルサーバー別にhtmlファイル上でphpを動作させる「.htaccess」コマンドを記載しました。

HTML内のPHPを動かす「.htaccess」

テキストエディタ(TeraPadなど)を使い「.htaccess」ファイルに該当の動作コードを記述し、ドメインルートへアップロードしてください、文字コードは「utf-8」になります。

記述コード最終行のコメントアウト”#文字コードutf-8”している箇所も必要になります、あえて全角を含ませて文字コードを「utf-8」に固定しています。

PHP動作確認用のファイル

動作確認のためのhtmlファイルを用意しました。必要な方は下記ファイルをご利用ください。

info.html
<?php
phpinfo();
?>

動作が正常な場合には、PHPの下記案内画面が表示されます、何も表示されない場合はhtml上でphpが動作していません。

info-phpの動作確認画像
上記はhtmlからphp-infoを呼び出した時の画像

※(注意)コマンドの記述を間違うと、旧PHP5.3が呼び出されることもありました。バージョンの確認もしっかり行いましょう!

さくらレンタルサーバー

さくらのPHPには、「モジュールモード」と「CGIモード」の2種類が存在します、それぞれの設定方法について解説いたします。

「モジュールモード」

.htaccess
AddType application/x-httpd-php .html
#文字コードutf-8

「CGIモード」(ライトプラン)

「.htaccess」に加えて「php.cgi」というファイルが必要になります。

php.cgi
#!/bin/sh
exec /usr/local/bin/php-cgi
#文字コードutf-8

ドメイントップへアップロード後「php.cgi」のパーミッションを「705」に変更。

.htaccess
Action myphp-script /php.cgi
AddHandler myphp-script .html
#文字コードutf-8
コアサーバー

コアサーバーの場合、新登場したV2プランにより、V1プラン「Apache」、V2プラン「LiteSpeed」の2つのサーバーソフトウェアが存在します。

「V1プラン」

.htaccess
AddHandler application/x-httpd-php80cgi .html
#文字コードutf-8

「80」の部分を「74」に変更すると、PHP7.4が適応されます。

「V2プラン」
当方、V2プランは未契約のため分かりませんが、V2のPHPが「LSAPI」なので、下記のコードをお試しください?

.htaccess
AddType application/x-httpd-lsphp .html
#文字コードutf-8
ロリポップ

ロリポップPHPの基本は「モジュール版」になりますが、他に「CGI版」「LiteSpeed版」があります、この3種類の設定方法について解説いたします。

「モジュール版」

.htaccess
AddType application/x-httpd-php .html
#文字コードutf-8

「CGI版」

.htaccess
AddHandler php8.0-script .html
#文字コードutf-8

管理画面(PHP設定)にて該当ドメインの「PHP.ini」から”php_value, php_flag”の項目をONにしてください。

ロリポップのphp.ini設定画面
php_value, php_flagの設定画面

※管理画面にてPHP設定を変更する場合、反映するまで約5分程度は要します。

「LiteSpeed版」
当方、ハイスピードプランは未契約のため分かりませんが、PHPが「LSAPI」なので、下記のコードをお試しください?

.htaccess
AddType application/x-httpd-lsphp .html
#文字コードutf-8

※PHPエラーの表示が出る場合は「WAF」設定をOFFにしてみてください。

エックス&スターサーバー

同系列のサーバー会社だけあって、PHPは信頼性の高い「FastCGI」の一本に統一されています。

「FastCGI」

.htaccess
AddHandler fcgid-script .html
#文字コードutf-8
ConoHaWING

コノハウィングのサーバーソフトウェアは「Nginx」ですが、PHPには高速な「LSAPI」が採用されています。

「LSAPI」

.htaccess
AddType application/x-httpd-lsphp .html
#文字コードutf-8

html内でphpを動作させるメリット!

後からHTMLサイト全体に埋め込んでも、そのままのURLが使えるのはメリットです。しかし、表示速度を考慮するとできる限りJavaScriptで済ませたいところですね!