htaccess php拡張子なしのURLにアクセスさせるmod_rewriteの書き方

htaccess php拡張子なしのURLにアクセスさせるmod_rewriteの書き方

PHPで作成したページにphp拡張子なしのURLでアクセスさせる方法。別段php拡張子のついたURLでもいいのだが何となくいやな場合があるので.htaccessにmod_rewriteを書いてphp拡張子なしのURLにアクセスを流す。

MixHostでMultiViewsできなかった

AddType application/x-httpd-php .php
MultiviewsMatch Handlers
Options +MultiViews

サーバーによっては上のようにhtaccessに書いてMultiViewsにしてphp拡張子なしのURLにアクセスさせることもできるようだが、今使っているレンタルサーバーのMixHostでは思うような挙動にはならなかった。いや、できるのだろうが私にはできなかったのかもしれない。

php拡張子なしURLでもアクセス可にするmod_rewrite

# php拡張子なしでもアクセス可にする
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)/$ $1.php

htaccessに上の様にmod_rewriteを書くと、https://f-af.com/●●●.phpでもhttps://f-af.com/●●●/でもアクセス可能となります。

最後が拡張子.phpではなくて/で終わるWordPress風のURLになります。php拡張子だけではなく、htmlでもhtmでも拡張子なしのURLにできるはず。

リダイレクトはSEO的によくないし、複数のURLでアクセスできるのもどうかと思うし、何よりトラブルの元になりそうなのであまりやりたくないですね。拡張子なしにするメリットは、一見でプログラムは何で動いてるページなのかわからないことと(すぐばれる)、プログラムを変えた時なんかだけですかね。