.htaccess活用法(11).htaccess(拡張子がhtaccessということで、ドットが必要です。ファイル名がないので最初戸惑いますが、こういうものだと思ってください。)が利用可能だと、
11.SSIを「.html」で動かすAddTypeによるMIMEタイプの設定の応用例は他にもあります。SSI(Server Side Include)を「.html」という拡張子のファイルでも動くようにしてみましょう。SSIは非常に便利です。PHPが利用できるまで、私も結構使っていました。このSSIを利用する上で一番ネックに思ったのが、「.shtml」という拡張子で作成しなければならないことでした。気をつければ何ていうことはないのですが、よく「.html」で作成してしまい、「あれ。動かないぞ。何で〜」となっていたことがあります。
AddType text/x-server-parsed-html .html とします。しかし、これだと、単純なHTMLファイルでも、いちいちSSIとして処理されますから、サーバに高い負荷を与えます。「どうしても」という場合を除き、避けたほうが良いでしょう。 代替案としては、iframeやJavascriptの利用が挙げられます。例えばバナー広告ローテーションをSSIで、 <!--#exec cgi="./cgi-bin/banner.cgi" --> としていたならば、その代わりに、 <IFRAME frameBorder="0" allowTransparency="true" height="60" width="468" marginHeight="0" scrolling="no" src="http://www.example.com/cgi-bin/banner.cgi" MarginWidth="0"><a href="http://www.exapmle.com/destination1.html"><img src="http://www.example.com/image/banner1.jpg" width=468 height=60 border=0></a></iframe> などとします。iframeをサポートしていないブラウザのシェア(ネットスケープ4.Xなど)は、私のサイトへのアクセスログによれば、今では約2%程度ですが、iframeをサポートしていないブラウザのためにも、「<iframe>」と「</iframe>」の間に、サポートしていないブラウザのためのコードも忘れずに書いておきます。(もちろん、iframeをサポートしていないブラウザでは、SSIに変わる完全な表現方法がない場合もあるとは思いますが・・・。) iframeではなく、Javascriptでも可能です。バナー広告を掲載した箇所に
<script type="text/javascript" src="banner_js.cgi"></script>
なお、<script type="text/javascript" src="banner_js.cgi"></script>のbanner_js.cgiを絶対URLを指定してダウンロードしようとすると、Windows版IE6.0では、banner_js.jsというファイルのダウンロード画面になり、その中身は、
ただ、Javascriptをoffにしているユーザー(私のサイトの統計によれば約3%)もいますから、Javascriptがoffでもバナー広告が表示されるように、デフォルトのバナー広告を決め、それを「<noscript>」と「</noscript>」の間に挟まれた箇所に記述します。ただ、どのようなSSIでもこのJavascript方式で代替できるかといえば、そういうこともありません。noscriptタグの中に記述するHTMLタグで、全てのSSIの代替表現を記述することは不可能でしょう。 ですが、先述のiframeとこのJavascriptを組み合わせることで、かなりの確率(99.9%以上)でSSIの代わりを表現することが可能でしょう。iframeタグをサポートしないブラウザ用に記述するHTMLタグの部分に<script type="text/javascript" src="banner_js.cgi"></script>と記述し、さらに続いて「<noscript>〜</noscript>」を記述します。これにより、SSIで表現できない内容があったとしても、iframeをサポートしていないブラウザでアクセスしていて、かつJavascriptをoffにしている人だけがnoscriptタグの中身を読み込みます。1000人に1人いるかいないかですから、ここは単純に「恐れ入りますが、Javascriptをoffにされているので表示できません。」でも良いかもしれません。
話が逸れましたが、SSIにはこのように代替手段もありますから、セキュリティ上の理由からSSIが利用できないサーバを利用している場合も、上のような方法で利用してみると良いかもしれません。また、最近では、PHPの利用できるレンタルサーバも増えていますから、そのようなサーバを利用してみるのも良いかもしれません。PHPであれば、SSIのように埋め込み型でプログラムを記述でき、HTMLと融合するのが簡単です。また、一般にCGI(perl)よりも負荷が少なく、高速だと言われています。
以上、.htaccessの実践的な利用法について見てまいりました。最後に、.htaccessが利用可能なレンタルサーバについてご紹介します。 |