htaccessに3行足すだけ!『.html』内でPHPを実行する方法!

2022/11/24 12:00
LINE

ホームページをリニューアルした際にURLが変わってしまうことがあります。

例えば、ファイルの拡張子を変えたとき。リニューアルを機にPHPを使い始めたため、ファイルの拡張子を『.html』から『.php』に変更せざるを得ない場合などです。

ソースコード内にPHPのプログラムを書くことで、ホームページをさらに機能的にできるのですが、基本的には拡張子が『.php』のファイル内でしかPHPのプログラムを使えません。そのため、これまで『.html』拡張子でホームページを公開していた場合は、『.php』拡張子に変更せざるを得ないのです。

とはいえ、拡張子が変わるとURLも変わり、そのURLのページが検索エンジンから受けていた評価がなくなる懸念があります。SEOの観点からそれは避けるべきでしょう。

解決策は、『.html』のままPHPが動作するように設定すること。htaccessの設定で、それが可能になります。

『.html』をPHPとして動作させるために必要な『htaccess』

htaccessとはApacheというWebサーバーの動作を制御するためのファイルです。Apacheは世界中でシェア率が高く、また日本のレンタルサーバーの多くがApacheを使用しています。

そのため、htaccessの書き方を覚えていれば、レンタルサーバーの会社を変えても使える場面が多いので、覚えておいて損はありません。

具体的には次のようなことが設定できます。

  • リダイレクト
  • アクセス制限
  • ベーシック認証の設定
  • MIMEタイプの設定

別のページにリダイレクトさせたり、特定のフォルダにアクセスさせないように制限をかけたりすることは一般的にも広く普及している使い方です。

上記の中の『MIMEタイプの設定』をhtaccessで制御することで『.html』ファイル内のPHPを実行できるように変更できます。

htaccessでMIMEタイプを設定して、『.html』をPHPとして実行する

ようやく本題ですが、『.html』のままPHPを実行させるには「htmlの拡張子を持つファイルにアクセスがあった際にphpとして認識する」という設定をする必要があります。

AddTypeを使う方法

ファイルには拡張子と呼ばれる、種類を分類するための単語がついています。HTML文書なら『ファイル名.html』、PHPプログラムなら『ファイル名.php』、画像ファイルなら『ファイル名.jpg』、などがあります。『.○○』のようにピリオドと英単語を組み合わせて記述されます。

サーバーは拡張子をもとに、MIMEタイプを判別し、処理方法を自動的に切り替えていますが、『AddType』を使うことで、処理方法をコントロールできるようになります。

『.html』をPHPとして実行するためには次のように記載します。


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

1行目「<FilesMatch “\.html$”>」と3行目と「</FilesMatch>」はセットで使います。アクセスされているファイルの拡張子が『.html』であるということを判断するために使います。

2行目「AddType」が『MIMEタイプ』を設定するという意味になっており、次のようなルールで記述します。

AddType MIME-type extension [extension] …

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

上記の例の『AddType application/x-httpd-php .html』は『.html』のファイルにPHPのMIMEタイプを設定するという意味があります。

こうすることで、『.html』ファイルであっても、サーバーはPHPだと認識し、ファイル内のプログラムを実行できるようになるのです。

AddHandlerを使う方法

MIMEタイプを設定する方法とは違いますが、AddHandlerを使っても、同様の動作をします。次のように記述します。


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

1行目と3行目は先述しておりますので、省略します。

2行目『AddHandler』とは動作の種類を設定するという意味で、動作の総称を『ハンドラ』と呼びます。次のようなルールで記述します。

AddHandler handler-name extension [extension]…

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

『php5-script』はPHP5を使用するという意味です。PHPのバージョンが違う場合、記述が変わりますので、サーバーの設定に併せて適宜変更します。

上記の記述により、『.html』のファイルはPHPとして動作するという設定になります。

まとめ

ご利用のレンタルサーバーによっては、上記で紹介した方法を使えない場合があります。その際には、各レンタルサーバーのQ&Aページなどに、拡張子htmlのままphpとして動かす方法が書かれていないかをご覧ください。見つからない場合、各レンタルサーバー運営会社のカスタマーサポートにお問い合わせください。

拡張子が変わってしまうとURLが変わり、これまで受けていたページの評価がなくなってしまう可能性があります。すでにSEO対策を実施していた場合、これは大きな痛手になってしまいます。

SEOを考えた場合は、URLの変更を伴うリニューアルはできる限り避けた方が良いとお考えください。

この記事を書いた人

SEOタイムズ 編集部

SEO対策実績「20,000社」を超えるGMOソリューションパートナー株式会社がインハウスSEOに取り組む企業様・個人に向けSEO情報を発信。

"Web初心者にもわかりやすく"をコンセプトにSEO対策情報をお届けします。

ランキング

  • 週間
  • 月間
【Illustratorのパターンの作り方】初心者でも簡単!パターンの基本を教えます!
1
【Illustratorのパターンの作り方】初心者でも簡単!パターンの基本を教えます!
2022/03/25 11:00
web
2
CSSでかっこいいアニメーションを作ろう!~animationの基本~
2022/07/08 18:34
web
#コーディング
3
【GA4】平均エンゲージメント時間とは?定義と滞在時間との違いを徹底解説
2023/02/27 12:00
SEOツール
#アナリティクス
4
AIツールとは?おすすめのAIツール27選をジャンル別にご紹介
2023/05/15 12:00
SEO対策
5
WindowsでPHPを実行する! XAMPPのインストールについて
2017/02/01 16:06
web
【Illustratorのパターンの作り方】初心者でも簡単!パターンの基本を教えます!
1
【Illustratorのパターンの作り方】初心者でも簡単!パターンの基本を教えます!
2022/03/25 11:00
web
2
CSSでかっこいいアニメーションを作ろう!~animationの基本~
2022/07/08 18:34
web
#コーディング
3
【GA4】平均エンゲージメント時間とは?定義と滞在時間との違いを徹底解説
2023/02/27 12:00
SEOツール
#アナリティクス
4
CSSの基本!横並びなどフレキシブルに対応する「Flexボックス」
2021/11/15 13:46
web
5
重ね言葉、知らないうちに使っていませんか?
2022/11/22 12:00
web
#ライティング

SEOタイムズとは?

SEOタイムズとは?

SEOタイムズは、Webマーケティングに取り組むWeb担当者向けのSEO対策特化型の情報メディアです。テーマは「SEO開拓者のバイブル」。

"初心者にもわかりやすく"をコンセプトに、SEO対策に関する有益な情報を発信しています。
20,000社以上の幅広い業種の集客支援実績から得られた経験とノウハウをベースに最新の情報をお届けします!

今すぐ出来るSEO対策情報も満載。あなたのWebマーケティング戦略を成功に導きます。