ここには htaccess に関する何百もの投稿があることは知っていますが、自分の状況に合った投稿が見つからないようです。
2 つの書き換えルールが発生しています。
1 つ目は、example.com/filename.php を example.com/filename/ に変換し、example.com/filenameA-filenameB.php を example.com/filenameA/filenameB/ に変換します。
2 つ目は、要求された URL の末尾にスラッシュがない場合、末尾にスラッシュを追加します。
foo.php が存在しない example.com/foo や example.com/foo/ などの間違った URL を入力するまでは、すべて問題なく動作します。「ページが正しくリダイレクトされていません」というメッセージが表示され、アドレス バーに「example.com/foo.php.php.php.php.php.php.php.php...」と表示されます。404 ページにリダイレクトできるように 404 を取得したいだけですが、何を試してもうまくいかないようです。
ご協力いただきありがとうございます!
RewriteEngine On
RewriteBase /
RewriteRule ^(.+)/(.+)//?$ $1-$2.php [NC,L]
RewriteRule ^(.+)//?$ $1.php [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]