拡張子のないURIへのアクセスを可能にする のバックアップ(No.4)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- 拡張子のないURIへのアクセスを可能にする へ行く。
- 1 (2010-02-12 (金) 15:49:00)
- 2 (2010-02-12 (金) 17:58:30)
- 3 (2010-02-12 (金) 21:10:02)
- 4 (2010-02-13 (土) 00:33:43)
- 5 (2010-02-13 (土) 16:49:22)
拡張子のないURIについて
最近はファイルに「.php」や「.cgi」といった拡張子を付けずにアクセスさせることがトレンドである。たとえば以下のようなアドレスを見たことのある人は結構多いのではないだろうか。
ttp://example.com/login
こういう風にする理由はいくつかあるらしいが、たとえば使っている言語が仮にphpだとして、
ttp://example.com/login.php
としてしまうと、遠い将来、phpではなくzzzという別の言語を採用したときに、
ttp://example.com/login.zzz
となってアドレスが変わってしまうので、そういったことをを防ぐためというのがある。また、使用している言語(PHP、Perl、Rubyなど)を諸々の理由から隠したいというのもあるらしい。
理由はどうあれ、将来的には拡張子を付けない方が一般的になるだろうし、トレンドを採用していると訪問者にこのサイトはちゃんとメンテされているという印象を持たれるので採用しても損はないと思う。
参考サイト
クールなURIは変わらない -- Style Guide for Online Hypertext
第21回 “使いやすいURI(URL)”の設計を考える(続編) - 技術者視点のユーザビリティ考:ITpro
FilesMatchを使う
とはいってもXOOPSでは採用できそうなファイルがあまりない。強いて挙げるならログインページ、ユーザ登録ページ、パスワード再発行ページの三つのファイルになるだろうか。
ttp://example.com/user.php ↓ ttp://example.com/user ttp://example.com/register.php ↓ ttp://example.com/register ttp://example.com/lostpass.php ↓ ttp://example.com/lostpass
これを実現するために.htaccessにFilesMatchという設定を書き込む。
<FilesMatch "^register$|^user$|^lostpass$"> ForceType application/x-httpd-php </FilesMatch>
ただ上の方法はこの話題が出ているサイトの多くに書かれているのだが、ある条件下でエラーになってしまうようだ。なので下の書き方の方がいいようである。
<FilesMatch "^register$|^user$|^lostpass$"> SetHandler php-script </FilesMatch>
以上の設定は「register」「user」「lostpass」というファイルはphpファイルとしてユーザにアクセスさせる、という内容になる。そして、元々存在する「register.php」「user.php」「lostpass.php」から拡張子を削除したファイルをサーバにアップロードしておけば、拡張子のないURIへのアクセスが可能になる。念のために拡張子があるファイルも残しておいた方がいいだろう。つまり、中身は同一で名前だけが違う(拡張子があるものとないもの)を一緒に置いておくということだ。勿論、拡張子のないURIへアクセスさせるためにはtheme.htmlなどに拡張子のないファイルへのリンクを書く必要がある。
<a href="http://example.com/register">登録する</a>
参考サイト
Options +Multiviews
.htaccessに以下の記述を追加すると、拡張子のないファイルでも適当に判別してアクセスしてくれるらしいが試していないので詳細は不明。
Options +MultiViews MultiViewsMatch Handlers
参考サイト
[PR]