玄箱HGやFedoraだけの問題ではありませんが、HTML文書をPHP化するときの注意点についてまとめます。
PHP化というの難しそうなイメージがありますが、CGIより随分と簡単な割に、カスタマイズが容易になるメリットは大きいです。
PHPを実行させるためには、通常は拡張子「.php」のファイルを作りますが、
ここでは拡張子を「.html」のままPHPを実行させる方法を採ります。
「.html」のままPHPを実行させることのメリットは、
今まで各ページに書いたリンクを修正しなくて済む、
URLが変更されないため検索エンジンに影響がない、
PHPを使用していることがサイト観覧者に分からないためセキュリティ上有利、
などが上げられます。
Apacheではデフォルトで拡張子「.php」のファイルをPHPファイルと認識しますが、
「.htaccess」を変更することで、他の拡張子のファイルもPHPファイルとして
扱うことができます。
下記の行を追加します。
[root@KURO-BOX ~]# vi /var/www/html/.htaccess 下記の行を追加 AddType application/x-httpd-php .php .html または、下記の行を追加(どちらでも良い) AddHandler application/x-httpd-php .php .html
これで、拡張子「.php」「.html」のファイルがPHPファイルとして認識されるようになります。
AddTypeまたはAddHandlerの設定により、「.html」のファイルが「application/x-httpd-php」として
認識されるようになったため、今まで「.htaccess」でMIME Typeを指定していた場合は
今後はHTMLファイルの中でMIME Typeを指定する必要があります。
ファイルの先頭に下記のように記述します。
HTMLの場合
<?php
header("content-type: text/html; charset=UTF-8");
?>
XHTMLの場合
<?php
header("content-type: application/xhtml+xml; charset=UTF-8");
?>
MIME Type application/xhtml+xml に対応していないブラウザで表示させるため、
対応していないブラウザに対しては、MIME Type text/html を返すようにします。
(驚くことに、IE(Internet Explorer)は対応しておりません)
この方法では、XHTMLで書かれたファイルをtext/htmlと誤認させるため、
XHTML文書をHTML文書として表示しています。
100%の表示が可能とは限りませんが、ほとんど問題はないはずです。
ファイルの先頭に下記のように記述します。
<?php if(preg_match('/application\/xhtml\+xml/', $_SERVER["HTTP_ACCEPT"]) > 0) { header("content-type: application/xhtml+xml; charset=UTF-8"); } else { header("content-type: text/html; charset=UTF-8"); } ?>
当サイトの場合、上記の記述を別ファイルに持たせて、 各ファイルの先頭で require により読み込ませています。
Copyright © 1999-2017 Amonution All rights reserved.