・拡張子「html」で、Webプログラムを実行させる方法
・拡張子無しのファイルで、PHPプログラムなどを実行させる方法
拡張子「html」で、Webプログラムを実行させる方法
ごくタマに、拡張子「html」のコンテンツであるにもかかわらず、動的なページだったり、クエリ文字列付きのURL(CGIやPHPなどのように?の後ろにパラメータが付いたURL)を見たことありませんか?
HTMLって、Webプログラムじゃありませんよね?
じゃあ、なぜ動的だったり、クエリ文字列のような無意味なものが付いてんの!?
実は、サーバの設定により、拡張子「html」でありながら、Webプログラムとして実行できるような設定をしているのです。
設定方法はカンタン!!
.htaccessファイルに次のような記述をするのです。
(記述例)
AddType application/x-httpd-php .html
これは、拡張子「html」のファイルをPHPプログラムとしてWebサーバに認識させる設定です。
これで、拡張子「html」のファイルにPHPプログラムを記述すると、それはPHPプログラムとしてきちんと動作するようになります。
拡張子無しのファイルで、PHPプログラムなどを実行させる方法
PHPなどのプログラムでは、必ずファイル名に「php」などの拡張子を必要と思っていませんか!?
実は、拡張子無しのファイルであってもPHPプログラムとして実行する方法があるのです!!
設定方法はカンタン!!
.htaccessファイルに次のような記述します。
(記述例)
DefaultType application/x-httpd-php
これは、デフォルトのファイルタイプは、どのようなファイルであるかをWebサーバに認識させる設定です。
つまり、拡張子無しのファイルは、何のファイルとも認識されないため、例えば記述例のような設定を行うとPHPプログラムとして認識されます。
ただ、もしレンタルサーバを利用している場合、動作しない場合があります。
そのような場合は、.htaccessファイルに次のように記述すると解決する場合があります。
(記述例)
<files *>
ForceType application/x-httpd-php
</files>
<files *.gif>
ForceType image/gif
</files>
<files *.jpg>
ForceType image/jpeg
</files>
<files *.png>
ForceType image/png
</files>
これは、次のような意味です。
<files>タグは、WebサーバApacneの設定記号でです(HTMLの記述の仕方に似ています)。
<files aaa>〜</files>とは、aaaというファイル名に対して、〜の内容の設定を行うという意味です。
ここでは、aaaの部分に、*(アスタリスク)が使用されています。*は、0個以上の任意の文字の並びを表します。
この*記号は、文字列の部分一致に使用される記号で、ワイルドカードと呼びます。
例えば、「*.gif」と書くと、「a.gif」、「gazou.gif」、「mypicture.gif」など、最後が「.gif」で終わるファイル名にマッチすることを意味します。
まず、1番目の<files>タグには、*だけが指定されています。これは全てのファイルを意味します。
ForceType AAAと書くと、強制的にファイルタイプをAAAに設定するという設定です。
つまり、1番目の設定で、強制的に全てのファイルをPHPとしてWebサーバに認識させる設定をしています。
ただし、画像ファイルなどは、PHPとして認識されるとまずい(ときどき正常に動作しない場合がある)ため、その後ろにそれぞれの設定をしています。
以上の設定をすると、Webアプリケーションが何で作成されているか外部からは分からないようにするというメリットがあります。
PHPプログラムなんだけど、パスの書き方をJavaっぽくして、いかにもJavaで作ったように見せかけることも可能!?