お知らせ

Movable Type 5.1 Webサイト製作ガイドVolume 22011年7月20日

Movable Type 5.1 Webサイト製作ガイドVolume 2」を発売しました。
前書「Movable Type 5 Webサイト製作ガイド Volume 2」をMovable Type 5.1対応に改訂しました。 「Movable Type 5.1 Webサイト製作ガイドVolume 1」の続編で、変数等の応用的な機能や、ウェブサイトやテーマなどのMovable Type 5の新機能についてしっかり解説した書籍です。
Movable TypeでWeb製作をされている方などにお勧めです。
PDFによる販売で、当サイトでのみ購入できます(書店では購入できません)

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

拡張子が.htmlのページでPHPを動作させる

| コメント(0) | トラックバック(0)

一般的なレンタルサーバーでは、PHPを動作させるには、そのページの拡張子を「.php」にします。
ただ、既存のHTMLのページ(拡張子が.htmlのページ)をPHP化する場合、拡張子を変えるとURLが変わってしまうことになります。

そこで、拡張子が.htmlのままで、PHPが動作するようにしたい場合がでてきます。
その方法をいくつか紹介します。

.htaccessファイルに「AddType」を記述する

1つ目の方法は、.htaccessファイルに「AddType」を記述する方法です。

基本的な書き方

モジュール版PHPが使われているサーバーなら、htmlファイルがあるディレクトリに、以下のような内容の.htaccessファイルを設置すると、拡張子が.htmlのファイルでもPHPが動作することが多いです。

AddType application/x-httpd-php .html

特定のファイルのみ対象にする

すべてのHTMLファイルをPHPとして動作させると、PHPを含まない純粋なHTMLのページも、PHPで処理されます。
そのため、サーバーの負荷が無駄に上がるという問題が生じます。
そこで、実際にPHPのコードが含まれているファイルだけを、PHP化することも考えられます。

ディレクトリ内の特定のHTMLファイルだけでPHPを動作させたい場合は、上記の行を「<Files "ファイル名">」と「</Files>」の行で囲みます。
例えば、「hoge.html」というファイルだけでPHPが動作するようにしたい場合は、.htaccessファイルを以下のように書きます。

<Files "hoge.html">
AddType application/x-httpd-php .html
</Files>

また、「<Files "・・・">~</Files>」の代わりに「<FilesMatch "・・・">~</FilesMatch>」を使って、特定するファイルを正規表現で指定することもできます。
例えば、.htaccessに以下のように書くと、ファイル名が「index○.html」(〇は0文字以上の任意の文字列)のようなページだけが、PHPとして動作するようになります。

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

mod_rewriteでPHPにリダイレクトする

サーバーによっては、.htaccessにAddTypeを記述することが禁止されている場合があります。
この場合は、上記の方法は使えません。
ただ、.htaccessにmod_rewriteの記述を書くことができるサーバーなら、mod_rewriteを使って、.htmlから.phpにリダイレクトする方法があります。

基本的な手順

まず、拡張子が.htmlのページにアクセスされたときに、ファイル名が同じで拡張子が.phpのページにリダイレクトするように、.htaccessに記述します。
htmlファイルがあるディレクトリに、以下の内容の.htaccessファイルを設置します。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)\.html$ $1.php [L]

次に、そのディレクトリの中で、拡張子が.htmlのすべてのファイルで、拡張子を.phpに変更します。

特定のファイルのみ対象にする

そのディレクトリ内の特定のHTMLファイルだけでPHPを動作させたい場合は、.htaccessを以下のように書きます。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)\.html$ $1.php [L]

そして、そのディレクトリの中で、PHPとして動作させたいHTMLファイルだけで、拡張子を.phpに変更します。
拡張子が.htmlのままのファイルは、通常のHTMLとして動作します(PHPの処理は行われません)。

サーバー固有の方法を使う

サーバーによっては、上記以外の方法で、HTMLのファイルをPHPとして動作させることができる場合があります。
例えば、lolipopだと、ディレクトリに以下のような.htaccessファイルを設置すると、そのディレクトリのHTMLのページがPHPとして動作するそうです。

AddHandler php5.2-script html

Facebook連携

当記事について「いいね」や「送信」を行っていただけると幸いです。


この記事についてウォールに投稿

トラックバック(0)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/2776.

コメントする


Facebookでコメント

試験的にFacebookのコメントフォームを設置しました。