htaccess code to remove extension AND add+force trailing slash?
.htaccess, mod-rewrite, url-rewriting
Solution
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]
Problem
I'm trying to put together some htaccess code that will turn example.com/filename.php into example.com/filename/ (and force the slash) - I've tried varous approaches, but each hasn't worked quite right, from 500 errors on subfolders to issues with the trailing slash, etc... Please help!