100105_00
動的ページを静的ページに変換する方法
はSEOを意識して変換をする方々が多いと思います。

一般的に使用されているものは.htaccessに次のいづれかを記述するというものがあります。

AddType application/x-httpd-php .php .html

AddHandler application/x-httpd-php .php .html

ですが、さくらインターネットのサーバーではこれだけでは動的なページを静的なページに変換することはできません。

私がやりたかった方法としてはrootには別サイトの入っているサイトにディレクトリを切りその中のphpファイル達の拡張子を.htmlに変更したいというもの。

今日はこれで半日はまってしまいかなり悔しいのでメモしておきます笑

さくらインターネットで動的ページ(.php)を静的ページ(.html)にする方法

1.さくらインターネットのmysqlのバージョンをメモ。

(場所はコンパネの「データベースの設定」で見れます!)

2.ターミナルを使ってログイン

さくらインターネットはたしかtelnetは使えなかったような・・・。
ssh接続をおすすめします。

◎おすすめSSH接続ソフト

winユーザーはこれを使うといいかも。
Tera Term
Tera Term

3.ターミナルで以下のコマンドを実行します。

$ cp /usr/local/php/5.2.8/bin/php-cgi-mysql5.1 /home/USERNAME/www/php.cgi

これはphp-cgi-mysql5.1のファイルをコピーして/home/USERNAME/www/にphp.cgiという名前で保存するという処理です。

私の場合は、ディレクトリを切った中で静的に変換したかったので

$ cp /usr/local/php/5.2.8/bin/php-cgi-mysql5.1 /home/USERNAME/www/ディレクトリ名/php.cgi

と入力しました。

コマンドの/5.2.8/や/php-cgi-mysql5.1/の部分はサーバーによって若干違うようです。

また、php-cgi-mysql5.1の部分もphp・php-cgiを使用する場合もあるようなのでケースバイケースで。

噂だと
php4系 → php
php5系 → php-cgi

を使用した方がいいらしいです。

また、php.cgiのパーミッションを705か755に変更します。

4.ドキュメントルートに.htaccessを設置

DirectoryIndex index.html index.php
Action myphp-script /php.cgi
AddHandler myphp-script .html .php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*).html+ $1.php

Action myphp-script /php.cgi
の部分は私の場合ディレクトリを切っているので

Action myphp-script ./ディレクトリ名/php.cgi

にしました。

5.確認してみる。

できたら拡張子htmlのままphpが動くかどうか確認をしてみてください。

この記録が誰かの役に立ちますように。。。

追記(2010/10/22): Teratermのリンク先がオリジナルページでなかったので貼りなおしました!
また脱字のご指摘ありがとうございます!