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

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

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

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

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

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

さて、ここからが本題!

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

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

  • 拡張子はhtmlに統一している
  • 拡張子がphpだとSEO上問題がある
  • URL変更するとインデックスされない

htmlでphpを動作させるには!

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

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

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

それに伴いPHP動作モードも開発が進み多様化しています、レンタルサーバーのプラン毎に「.htaccess」のコマンド記述もそれぞれ異なります。

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

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

テキストエディタ(TeraPadなど)を使い「.htaccess」ファイルに該当の動作コードを記述し、ドメインルートへアップロードしてください、文字コードは「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
#さくらSVモジュール

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

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

php.cgi
#!/bin/sh
exec /usr/local/bin/php-cgi
#さくらSVcgi

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

.htaccess
Action myphp-script /php.cgi
AddHandler myphp-script .html
#さくらSVcgi
コアサーバー

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

「V1プラン」

.htaccess
AddHandler application/x-httpd-php80cgi .html
#コアSV-V1

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

「V2プラン」
コアサーバーV2のPHP動作モードが「LSAPI」になっています、ConoHaWINGと同じ記述コードで動作を確認済です。

.htaccess
AddType application/x-httpd-lsphp .html
#コアSV-V2
ロリポップ

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

「モジュール版」

.htaccess
AddType application/x-httpd-php .html
#ロリポップSVモジュール

「CGI版」

.htaccess
AddHandler php8.0-script .html
#ロリポップSVcgi

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

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

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

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

.htaccess
AddType application/x-httpd-lsphp .html
#ロリポップSVlsapi

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

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

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

「FastCGI」

.htaccess
AddHandler fcgid-script .html
#エックスSV
ConoHaWING

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

「LSAPI」

.htaccess
AddType application/x-httpd-lsphp .html
#コノハウィングSV

私が使った感想 ジプシー管理人

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

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

(C)2022 1stSvNet