勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

.htaccessでURLの末尾のphpという拡張子が無い場合でもページを表示させる方法

  Apache サーバー

「/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が無くてもページ表示できるようになる。

 

参考サイト

https://www.javadrive.jp/apache/htaccess/index9.html

 - Apache サーバー

  関連記事

ブラウザがWebP対応の場合はそのまま表示し、非対応の場合はjpg/png画像を表示させる方法

ページ表示時にブラウザがWebP画像に対応している場合はそのまま表示し、非対応の ...

HSTS(HTTP Strict Transport Security)の設定方法

あるサイトのセキュリティ対策としてHSTS(HTTP Strict Transp ...

htmlファイル内でPHPを動かす(AddHandler)

サイトを引き継ぐことがあり、ソースを確認していると拡張子はhtmlなのにPHPの ...

Apache2.4で[access_compat:error]AH01797エラーの対処方法

Apacheのエラーログを追っていると「[access_compat:error ...

CPIのレンタルサーバでRewriteEngineを使用する場合の注意点

CPIのレンタルサーバで開発する案件があり、htaccessファイルを用いてRe ...