デジタリストBlog

« 前の記事 | トップ | 次の記事 »

2005年02月04日

.html拡張子のままでPHPを動作させる

movable typeを使ってブログを書いている人の中にはテンプレートを色々いじってみたりPHPやcgiなど動的要素を使ってカウンタなどを設置している人も少なくない。さらに、ウェブログの設定のページで簡単に各種アーカイブの拡張子をhtmlからphpに変更できるので、サイト全体をPHP化してしまっている人もかなりいる。サイト全体をPHP化してしまうことでinclude式などで簡単に外部ファイルを利用できるようになり、サイトがサーバーに与える負荷を抑えながら動的なコンテンツを利用することが可能になる。

ところが、サイト全体をPHP化するために拡張子を.phpとしてしまうことを嫌がる人がいうことも事実。見た目の点で、あるいはSEOの観点で、できればアーカイブページの拡張しも.htmlのままにしておきたいという人たちだ。

見た目の観点はともかく、SEOということに関して言えば実際にどれだけ.phpが.htmlより不利なのかは明らかではない。.htmlファイルがgoogleなどのクローラーロボットに最もよく取り込まれるという見解がある一方で、多くの.phpファイルをgoogleにキャッシュして貰っているサイトがあるのも事実だからだ。ただし、.htmlのほうが.phpよりSEO的に不利ということはあり得ないということだけは言えそうだ。

さてこのPHPだが、設定次第では拡張子を.htmlとしたままでPHPを利用できる。つまり.php内ではなく.html内でPHP式を動かすということだ。

PHPの詳しい仕組みは専門の本などを参考にしてもらうとして、.htmlでPHP式を使うために必要なのはサーバー内のPHPアプリケーション部分に.htmlファイルを関連づけることである。多くのサーバーでは初期設定のままだと.php .php3 .php4などの拡張子しかサーバー内のPHPアプリケーションに関連づけられていない。これを.htmlなどでも関連づけを行えば.htmlでPHPが動作するというわけだ。

方法は簡単。movable typeをインストールしたディレクトリに.htaccessがあるので、この中に

AddType application/x-httpd-php .php .php4 .php3 .phtml .html

の文章を書き加えるだけ。場所は.htaccess内のどこか一行どこでもよいが、movable typeをインストールした際にmovable typeが書いた文章があるので、その直後にでも入れておけばいい。.htaccess内はこんな具合になる。最後の行に注目である。

## %%%%%%% Movable Type generated this part; don't remove this line! %%%%%%%
# Disable fancy indexes, so mtview.php gets a chance...
Options -Indexes

# The mod_rewrite solution is the preferred way to invoke
# dynamic pages, because of its flexibility.

# Add mtview.php to the list of DirectoryIndex options, listing it last,
# so it is invoked only if the common choices aren't present...

DirectoryIndex index.php index.html index.htm default.htm default.html default.asp /mtview.php


RewriteEngine on

# don't serve mtview.php if the request is for a real directory
# (allows the DirectoryIndex lookup to function)
RewriteCond %{REQUEST_FILENAME} !-d

# don't serve mtview.php if the request is for a real file
# (allows the actual file to be served)
RewriteCond %{REQUEST_FILENAME} !-f
# anything else is handed to mtview.php for resolution
RewriteRule ^(.*)$ /mtview.php [L,QSA]



# if mod_rewrite is unavailable, we forward any missing page
# or unresolved directory index requests to mtview
# if mtview.php can resolve the request, it returns a 200
# result code which prevents any 4xx error code from going
# to the server's access logs. However, an error will be
# reported in the error log file. If this is your only choice,
# and you want to suppress these messages, adding a "LogLevel crit"
# directive within your VirtualHost or root configuration for
# Apache will turn them off.
ErrorDocument 404 /mtview.php
ErrorDocument 403 /mtview.php

## ******* Movable Type generated this part; don't remove this line! *******

AddType application/x-httpd-php .php .php4 .php3 .phtml .html


これで、拡張子を.htmlとしたままでPHPが動作するようになる。.htmlファイルにカウンタでもランダムバナーでもなんでもご自由に設置いただけますよ!

Posted at 2005/02/04(金曜日) 0:36

この記事を読んだ人はこんな記事も読んでいます

« 前の記事 | トップ | 次の記事 »

« 前の記事 | トップ | 次の記事 »