さくらのVPS(仮想サーバー)を使っていたところ、ファイルが拡張子なしだとエラーが出て表示できないことに気づく。
例えば、page1.htmlやdog.phpというファイルがあるとして
http://~.com/page1
http://~.com/dog
拡張子なしのこれだとエラーが出てしまい
http://~.com/page1.html
http://~.com/dog.php
というように拡張子をつけてあげるときちんと表示される。
さくらのレンタルサーバーのスタンダードを借りていたときは何も設定せずに、拡張子無しのファイル名だけで表示できた気がするんだけど、さくらの仮想サーバーを使う場合は自分で設定しないと表示されないみたい。
いくつか方法はあるようだけど、Apacheと、.htaccessで設定する方法を使いました。
使うのはMultiViewsというもの。これを使うと拡張子なしのファイル名だけでファイルが表示できるようになる。
MultiViewsの設定はApache側だけでもできるようだけど、Apache側でMultiViewsを有効に設定してもなぜか上手くいかなかった。
なのでApacheで.htaccessが使えるように設定し、.htaccessの中でMultiViewsを使えるように試したら上手くいった。
具体的には
まずApacheのほうはhttpd.confファイルのDirectoryに関する設定の部分を見る。
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
(.htaccessで設定できるようにするならAll、しないならNone・・・)
こういう説明があるから、
AllowOverride All
として、
次に.htaccessのファイルの中に(ない場合はファイルを作ってから)
Options +MultiViews
と書いてあげると、拡張子無しのファイル名だけで表示されるようになりました。(AllowOverrideの設定は2箇所あるけど、片方だけ設定を変えればいいのかは不明。上で説明してるのは2箇所目のほう。自分は両方とも設定を変えた)
.htaccessファイルの中には、indexがちゃんと表示されるように以下も記載してる。
DirectoryIndex index.html index.htm index.php .ht
これだけ書いておけば取りあえず自分が使う範囲では問題なかった。
参考にさせていただきました!ありがとうございました!