.htaccessに書き込む例です。
RewriteEngine on
RewriteOptions MaxRedirects=1
RewriteBase /
# php拡張子なしでもアクセス可にする
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
# 拡張子が付いていたら、リダイレクト
RewriteCond %{REQUEST_URI} \.[^/\.]+$
RewriteRule ^(.*)$ / [L,R]
# URLに.(ドット)を含まない場合はディレクトリと見なして末尾スラッシュ補完
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.[^/\.]+$
RewriteRule .* %{REQUEST_URI}/ [L,R]