今、ロリポップ!のレンタルサーバーに申し込んでいて、無料の試用期間がしばらくあるのでいろいろ試しています。いろいろ試した中で、ファイルの拡張子がhtmlのまま、phpファイルを利用する方法がわからなくて、悩みました。
以前、さくらインターネットのレンタルサーバーで設定したときは、もっと簡単だったんですが、何箇所かツボにはまってしまいました。
これはサイトを作っている人や、携帯でグーグルモバイルアドセンス(Google Mobile AdSense)をする人とか利用している人は多い気がするんですが、ほとんど情報がなくて、あっても使えなくて、これを解決するのに半日費やしました。ただ私がプログラムのことをほとんど知らない素人なので、時間がかかった可能性が高いですが。
素人が手探りで調べたので、他にもっと良い方法があると思いますが、私個人用のメモとしてその時の記憶をそのまま残しておきます。
最初に結果から書きます。(「」はわかりやすいようにつけてるだけで、実際にはつけない。)
htmlファイル内でphpを使うためには「.htaccess」ファイルの設定をしてやります。
まずは「.htaccess」というファイル名をつけてサイトと同じフォルダに入れてやります。
その「.htaccess」内にロリポップの場合「AddHandler php5.2-script html」と書けばOKでした。
さくらインターネットの場合は「.htaccess」内に「AddType text/x-server-parsed-html .html」と書けばOKでしたが、ロリポップでは駄目でした。ロリポップの掲示板やサポート、マニュアルなど見てみるとphp4じゃなくてphp5だから「AddType php5-script .html」と書けばよさげとの説明もありましたが(正確な情報は見つけられなかった)、これでは駄目で、掲示板かどこかで書いてあった「AddHandler php5.2-script html」と書くとOKでした。要はphp5じゃなくてphp5.2にすれば大丈夫みたいでした(「AddType php5.2-script .html」でもちゃんと動いた。phpのバージョンが変わればまた変更が必要なのかも)。
これでファイルがhtmlのままphpを使えるようになったんですが、もう一つ悩んだところはインクルードの使い方です。さくらのレンタルサーバーの場合は、上の設定をした後にhtmlファイル内の外部ファイルを出力したい場所に「<!–#include virtual=”ファイル名.php”–>」と入れてやればちゃんと作動しました。
でもロリポップは駄目でした。
直接htmlファイル内にphpを書き込むと作動するんですが、「<!–#include virtual=”ファイル名.php”–>」を入れても、このコードがそのまま表示されるだけでした。ためしに拡張子をhtml→shtmlとするとちゃんと作動した。この辺の原因はわからない。
物量作戦で、いろいろ手当たりしだいにやったところ、
「<?php include(“ファイル名.php”); ?>」
と入れてやればOKでした。
よって最後に簡単にまとめると、私が、使ったロリポップのレンタルサーバーでは、htmlのままphpを使うには
「.htaccess」内に「AddHandler php5.2-script html」と書く。
インクルードを使うには
htmlファイル内に「<?php include(“ファイル名.php”); ?>」と書く。
ついでに書いておくと、さくらインターネットの場合は
「.htaccess」内に「AddType text/x-server-parsed-html .html」と書く。
インクルードを使うには
htmlファイル内に「<!–#include virtual=”ファイル名.php”–>」と書く。
上の説明の文字コードの使い方とか適当なので、コピペだと上手く行かないかもしれません。
これからレンタルサーバーを借りようと考えている人は、さくらもロリポップも無料のお試し期間があるので試しに使ってみるといいかもしれません。