SSIで上位ディレクトリを呼び出す場合にはちょっと注意

2012-12-26 19:55:50
さくらインターネットの共有サーバーではhtaccessのルールが特殊で、結構悩まされる。安いサーバーに難があるのは仕方がないけど…。

既に拡張子が「html」で作成されたサイトで、後からSSIやPHPを使いたいという状況。これWEBの仕事してるとそこそこ出てくるよね?

URLを変えるのはSEO的にイヤだということで、拡張子はhtmlのままSSIやPHPを使用したいという時は、htaccessにちょいと書いてやるだけで実現します。
▼phpの場合
AddType application/x-httpd-php .htm .html
▼SSIの場合
AddHandler server-parsed html
が、しかし、さくらインターネットでPHPを拡張子htmlのままで使用するには上記の設定だけではエラーが起きて、ページが表示されなくなってしまうのである。

「さくらインターネット php 拡張子 html」で検索すると解決策は出てくるが、PUTTYをインストしてあれこれしないといけないので、しんどい!

というわけでインクルードぐらいならSSIで十分なのでSSIを採用することに。設定は上記のhtaccessだけでOK。

早速、htmlファイルに下記を書いてみた。
<!--#include file="../inc_header.html" -->
すると、↓エラー発生!!ゴフッッッ!!!
an error occurred while processing this directive
なんじゃこりゃ。と調べてみると、SSIでインクルードする場合、インクルード元のファイルが上位階層の場合は「include virtual」としなければいけないようだ。
<!--#include virtual="../inc_side_manu.html" -->
これで解決!さくらインターネットで拡張子htmlのままインクルードしたいだけっていう時はSSIをオススメしておこう。