Web関連

【さくらサーバー】htaccessを使って拡張子無しでアクセスする

更新日:

スポンサードリンク
DSC_04611-600x401

さくらサーバーで拡張子なしのアクセスする方法について非常に苦労したのでつづっておきます。私はスタンダードプランを使っているのですが、さくらサーバーではどうもOptions MultiViewsが現状使えないようなので、拡張子なしのアクセスをしたい場合はModRewriteを使ってうまくやりくりするしかないようです。

どっちにしても私はGETパラメータについてもいじりたかったのでmodrewriteは避けられないと考えていました。しかし、検索して調べるとだいたい次のような書き方で解決するといった記述が多いのですが、まったく効きませんでした。この例はphpファイルを拡張子なしでアクセスさせるものです。ちなみにhtaccessと拡張子なしでアクセスさせたいファイルは同層に設置しています。

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

その他にもRewriteRuleで置換後のURLはhttpから始まるものに書き換えた方がいいというものもあったのですが全然効果がありません。(というかそれをするとアドレス欄には書き換え後の拡張子のついたものが表示されてしまう)

1週間くらい悩んだのですが結論としてさくらサーバーでは上記の方法でのURL書き換えはできないというものに達しました。おそらく内部的に色々書き換えを行っている結果同じファイル名への書き換えの場合は上記の書き方は効かなくなっているのだと思います。(違う!という場合はご指摘いただけると助かります)

なので拡張子なしの書き換えを行いたい場合は別名のファイルを付けて行うしか現状ないと思います。例えばhoge.phpを拡張子なしでアクセスしたい場合はhoges.phpを用意して

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1s.php

みたくするとアドレスにhttp://~~/hogeとうてばhoges.phpの内容が表示されるようになります。

スポンサードリンク

-Web関連

Copyright© めめんと , 2019 All Rights Reserved Powered by AFFINGER5.