静的なHTML上にWordPressの新着情報を表示する作業を行った時、PHPを動かす.htaccessの記載方法で少しつまづいたので、備忘録として情報を残しておきたいと思います。
こんな人におすすめ
- HTML上でPHPを動かしたい。
- コードを記載したけどうまく動かない。
.htaccess ってなに?
みなさんご存知かとは思いますが、少しだけ説明を。
「.htaccess(ドットエイチティーアクセス)」とは、「Apache(アパッチ)」を使ったサーバーの設定を一部だけ変更する事ができるファイルです。HTMLファイルと同じようにサーバーにアップして使用します。本来サーバーの設定は特定の管理者しか使えないけど、「.htaccess」で簡単に設定できるようにしておいたよ。と言ったものです。なので「.htaccess」ではできる事が限られています。
ウェブのお仕事ではベーシック認証やリダイレクトの設定を行う時に使う事が多いです。
ちなみに「Apache」のみで使用できる機能で、最近の「Nginx(エンジンエックス)」などでは使えないので注意!!(エックスサーバーでは「Nginx」でも使える模様)
https://www.xserver.ne.jp/manual/man_server_htaccess.php
HTML上でPHPを動かすための設定方法
「.htaccess」をダウンロード・作成しよう
まずFTPソフトなどでサーバーにアクセスして「.htaccess」をダウンロードします。
「.htaccess」は不可視ファイルと言って通常フォルダ内では非表示の設定となっています。ダウンロードしたのにファイルが見つからない時は以下のショートカットを使い、不可視ファイルを表示しましょう。(mac)
command + shift + .(ドット)

不可視ファイルが表示されるようになれば「.htaccess」の作成も可能になります。(逆に不可視ファイルが見えない状態だとファイルのリネームだけでは「.htaccess」が作成できない)適当なファイルをコピーして名前を変えれば完成です。
「.htaccess」の作成ルール
「.htaccess」の文字コードは「UTF-8」、改行コードは「LF」、最後の行に改行をいれるというルールがあります。
ダウンロードしたファイルであれば正しく設定されていると思いますが、新規で作成する時には気をつけましょう。間違えていた場合サーバーエラーになる場合があるので、エラーが表示された時正しく設定できているかの確認も必要です。
コードを記述
「.htaccess」に以下のコードを追加し、サーバーにアップすればHTML上でPHPを使えるようになります。(WordPressのPHPを使う場合は別途作業が必要になるので注意。(後ほどまとめたい))
AddType application/x-httpd-php .html
「.htaccess」は記述間違いがあると、サイトが閲覧不可になる可能性が高いです。ダウンロードしたデータはバックアップを取って、間違えた時にすぐ変更できるようにしておきましょう。
「.htaccess」にコードを追加したけどPHPが動かない
きちんとコードを設定したけどHTML上のPHPが動かないんだけど!!!
そんな時は以下も合わせてチェックしてみてください。解決するかも。
「.htaccess」のルールが間違っている
サイトを表示してサーバーエラーが表示されていたら、「.htaccess」の設定がうまくできてない可能性があります。
文字コードが「UTF-8」、改行コードが「LF」になっていることを確認てみましょう。
ブラウザのキャッシュをクリアする
「.htaccess」は通常のリロードだけではなかなかキャッシュがクリアできない事があります。
記述を更新してリロードして確認したけど、うまく動かなかった…なにが原因だろう…と本当は正しく設定できていたのにキャッシュがクリアされてないだけで気づかず何時間も原因を探してた…なんて事になることも。(私がなった)
「.htaccess」を更新した際は、都度ブラウザのキャッシュをきちんと削除してから確認することをおすすめします。
サーバーを確認する
実はレンタルサーバーによってHTML上でPHPを動かすために記載するコードに違いがあるようです。私はこの方法で解決しました。今回個人のサーバー上では動作確認できていて(ロリポ)、別サーバーにアップした際に動かなくなったのですが、そのサーバーがエックスサーバーでした。
色々調べてみるとエックスサーバーは上記の記載とは異なる記述が必要のようで、そちらを記載したらすぐに動作しました。
えーそんなの気付くかい。と思いましたが、サーバーの設定ですもんね。つまづいた時にいろんな方向から調べられる能力は本当大事。これは経験と知識によるものなのか!?
通常の記載でHTML上でPHPが動かせるサーバー「ロリポップ」さんはこちら
注)エックスサーバーさんは国内シェアNo1のよいレンタルサーバーです
エックスサーバー用のコード
エックスサーバーでHTML上でPHPを動かすためのコードはこちら。
AddHandler fcgid-script .html
まとめ
経験しないと気づけないことってありますよね。
忘れないようのブログに書いたら知識が定着するかな。するといいな。