.htaccessでURLの末尾のphpという拡張子が無い場合でもページを表示させる方法
「/hoge/test.php」のようなディレクトリ・ファイル名の場合は「https://test.com/hoge/test.php」というURLになると思うが、これを「https://test.com/hoge/test」でもページ表示できるようにしたい。.htaccessでの設定方法をメモ。
ソースコード
RewriteEngine on RewriteBase /hoge RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)/+$ ./$1 [R=301,L] RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php [L]
末尾のスラッシュを消す
RewriteRule ^(.*)/+$ ./$1 [R=301,L]
上記でURLの末尾にスラッシュがある場合はスラッシュ無しのURLにリダイレクトさせている。尚、リダイレクトの際に相対パスを使っているためRewriteBaseを設定する必要がある。
末尾のphp無しでもページ表示
RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php [L]
上記でURLに.phpが無くてもページ表示できるようになる。
参考サイト
関連記事
-
Apache2.4で[access_compat:error]AH01797エラーの対処方法
Apacheのエラーログを追っていると「[access_compat:error ...
-
他ドメインから画像の呼び出し(直リンク)を禁止する方法
他ドメインからの画像の呼び出し、いわゆる直リンクの禁止を行いたかった。調べるとh ...
-
VirtualHostを設定しIPアドレスでもアクセスしたい
apacheでVirtualHostを設定しつつ、IPアドレスでもアクセスしたか ...
-
日本語込みのURLをRewriteRuleで書き換える方法
WordPressのパーマネントリンク的なことをhtaccessで実現したい。具 ...
-
htaccessファイルにて特定のIPの場合のみBasic認証無し、その他の場合はBasic認証有りにする方法
開発中の環境で指定したIPからのアクセスはBasic認証無しに、それ以外のアクセ ...