jump to navigation

拡張子なしURLについて 6月 20, 2009

Posted by hyhy in 技術情報.
Tags: ,
comments closed

結構前々から気になっていたので、まとめてみました。
拡張子を隠すことで、言語のセキュリティホールをつかれないために、どの言語で運用しているか隠す場合もあるそうです。
注)http://server/page/ではなく、http://server/page を言っております。

・CGIである場合、CGIの拡張子は、別に .cgi である必要はなく基本的には任意でよい。

・JavaServletの場合はクラス名を直接指定するので拡張子が付かない。
この場合は、単にアプリケーションを呼び出す名前になるので拡張子は不要になります。
※Java Servletなどで作られているWebアプリケーションはサーバにあるアプリケーションとURLとの対応をweb.xmlに記述します。

・apacheの設定で「ForceType」を使用する。
→(phpの例)
1).htaccessを設置して、
<FilesMatch “^$”>
ForceType application/x-httpd-php
</FilesMatch>
と書く。
2)phpファイルは、たとえば「test.php」だったら「test」にリネームする必要がある。

・apacheの設定で「Content Negotiation」を使用する。
httpd.confの拡張子なしにしたいファイルがあるディレクトリに
Options MultiViews
の記述を追加する。
※phpスクリプトのリネームは必要なし。
※Content Negotiationのほうがお手軽ですが、レスポンスが少し悪くなるようです。

・ApacheのMultiviewsという、クライアントの環境(例えば言語)により表示内容を切り替える手法。
参考:Apane コンテントネゴシエーション

広告