F.Ko-Jiの「一秒後は未来」

特定ファイルのみPHPを無効にする方法

拡張子.htmlのままPHPを有効にしている

このブログでは拡張子 .html のままPHPプログラムが実行できるようにしています。

拡張子を .html にしているのは、過去記事のパーマリンクを変更したくなかったためです。ブログを始めた当時はPHPを使っていませんでした。

.htmlファイルでPHPを実行できるようにする方法は簡単で、.htaccessファイルやApacheの.confファイルに以下の1行を書くだけです。

  AddType application/x-httpd-php .html

PHPを使うと全ページで共通した部分(ヘッダー、サイドバー、フッターなど)をパーツ化できるので、MTの再構築が軽くなります。また、ページ内に色々とプログラムを組み込むことができるので便利です。

一方で、PHPで出力するとサーバー側の負荷が高くなってしまいます。同時アクセス数が急増すると、メモリを食い尽くし、レスポンスが遅くなり、接続数が上限を超え、データベースを利用していればデータベースにも接続できなくなる・・・といった問題が生じます。

特定ファイルのみPHPを無効にするには

ブログの場合、特定の記事のみが急激にアクセスが増えることがあります。そのため、そのページのみPHPで実行するのをやめることができれば、かなり負荷を軽減できるのではないかと予想できます。

じゃあどうすればいいかというと、こういう場合はおそらく「ForceType ディレクティブ」を使います。

例えば .htaccess やApacheの.confファイルに次のように記述すると、.htmlでPHPが有効になっていても、sample.htmlだけはPHPが無効になります。

<Files sample.html>
  ForceType text/html
</Files>

ForceTypeの指定は、普通に拡張子.phpでPHPを実行している場合にも有効です。

また、Directoryディレクティブと組み合わせると、特定ディレクトリにあるファイルにのみ適用させることもできます。ただしDirectoryディレクティブを使う場合は、Apacheのconfファイルに記述しなければなりません。

なお、当然この設定を有効にするとそのファイルではPHPを実行できなくなるので、ファイルの内容を、HTMLで出力された内容に書き換えておく必要があります。

» mod_mime – Apache HTTP サーバ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など