Try this:
RewriteCond %{THE_REQUEST} ^GET /[^?s]+.php
RewriteRule (.*).php$ /$1/ [L,R=301]
RewriteRule (.*)/$ $1.php [L]
The first rule redirects requests of /foo/bar
.php
externally to /foo/bar
/
. And the second rule rewrites requests of /foo/bar
/
internally to /foo/bar
.php
.
And to force the trailing slash, try this rule:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…