Я использую файл .htaccess, чтобы направлять запросы к каталогу в настраиваемый php файл, который предоставляет информацию об этом каталоге (и я хочу, чтобы URL-адрес, отображаемый браузером, не изменялся).
Вот соответствующая часть файла .htaccess.
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ /myphp.php?url=%{REQUEST_URI} [QSA,L]
Это хорошо работает, если вы перейдете в каталог и включите конечную косую черту:
http://domain.com/path/
Но без конечной косой черты это не
http://domain.com/path
URL-адрес (показано в браузере) превращается в:
http://localhost:8888/path/?url=/path
Я попытался исправить это, добавив правило выше этого правила:
RewriteCond %{REQUEST_FILENAME} -D
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L]
Но это не работает для меня.
Как я могу получить .htaccess для добавления конечной косой черты, если она опущена, а затем действовать так, как если бы она была там?
Спасибо
Обновление: В соответствии с просьбой, вот что все.
<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>