拡張子を省略したり、拡張子なしでファイルにアクセスする方法メモです。
URLから拡張子を省けるので場合によってはSEO的に有利になることもあるようです。こういった便利な技術はいつの時代も使い方次第ですね。
それでは、htaccessを利用して拡張子を省略設定できる方法をいくつかご紹介します。
サーバーの環境によって利用できない場合があるので、色々試して納得のいく指定方法を見つけて下さい。
目次
.htaccessのOptionsで有効にする
Optionsが利用できるサーバーの場合は明示的にMultiViewsを有効化することで拡張子を省略できます。
htaccessに以下を追記しましょう。
Options +MultiViews
MultiviewsMatch Handlers
ちなみに、MultiViewsを無効化する場合には以下の記述となります。
Options -MultiViews
Optionsが制限されたサーバーの場合
さくらサーバーではOptionsの利用が制限されていますので、上記の記述ではエラーとなります。
さくらのサーバでApache 2系の場合
MultiViews のデフォルトの設定が Any から NegotiatedOnly に変更されているので、Apache 1.3系と同様に拡張子省略に必要な記述のみで指定可能になります。
htaccessに以下を追記しましょう。
MultiviewsMatch Any
このようにMultiviewsMatch ディレクティブの設定を変更することで拡張子の省略が可能になります。
AddTypeでヘッダーを明示化する
AddTypeを使ってMIMEタイプを指定することで、拡張子を省略できます。
htaccessに以下を追記しましょう。
AddType application/x-httpd-php .php
この指定の場合は省略したい拡張子ごとに記述に必要になりますが、予期せぬ誤動作は防げると思います。
まとめ
まずは使っているサーバーの設定を確認しましょう。Optionsが使用できるのかという部分で、記述できる範囲も決まってきます。
ユーザー数の多いさくらではOptionsの利用ができないので、必然的に後者で紹介した方法になります。
htaccessは間違えると大きな問題を引き起こす重大な設定ファイルだということも忘れずに弄りましょう。
今日も知識欲は止まらない。