I am using a .htaccess file to direct requests for a directory to a custom php file that provides info about that directory (and i want the url displayed by the browser to not change).
Here is the relevant part of the .htaccess file.
RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.*)$ /myphp.php?url=%{REQUEST_URI} [QSA,L] This works well if you go to a directory and include a trailing slash:
http://domain.com/path/ But without the trailing slash, it doesn't
http://domain.com/path The url (shown in the browser) turns into:
http://localhost:8888/path/?url=/path I've tried fixing this by adding a rule above this rule:
RewriteCond %{REQUEST_FILENAME} -D RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ $1/ [L] But that isn't working for me.
How can I get .htaccess to add the trailing slash if it is omitted and then act just as if it had been there?
Thank you
Update: As requested, here is the whole thing.
<IfModule mod_rewrite.c> RewriteEngine On #force trailing slashes on real directories RewriteCond %{REQUEST_FILENAME} -D RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ $1/ [L] #use the directory viewer on directories without an index page RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.*)$ /myphp.php?url=%{REQUEST_URI} [QSA,L] </IfModule>
.htaccessfile, so would you mind posting the whole thing?