Имеется штекер:
/.htaccess
RewriteEngine on
RewriteCond %{HTTPS}_%{HTTP_HOST} ^(?|off_(?:www\.)?(.*)|on_www\.(.*)) [NC]
RewriteRule .* https://%1/$0 [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{DOCUMENT_ROOT}/public/$0 !-f
RewriteCond %{DOCUMENT_ROOT}/public/$0 !-d
RewriteRule .* /public/index.php?$0 [L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule .* /public/$0 [L]
Суть его - убрать возможность дубля по адресам примерно такого вида:
1. site/controller
2. site/public/controller
То есть во втором случае с public, мы не имеем доступа к controller, так как контроллером становится public :)
Что не устраивает?
При вводе адреса
site/publiс/
всё нормально, при вводе
site/public
как видим БЕЗ слеша, то адрес дописывается и принимает следующий вид
site/public/?public
.
Я не использую явные GET-параметры, поэтому думаю отрежу-ка я QUERY_STRING, переписал вот это строчку
RewriteRule .* /public/index.php?$0 [L]
на
RewriteRule .* /public/index.php [L]
, трабла с
?public
исчезла, но теперь при вводе без слеша или со слешем всегда имеем
site/publiс/
, то есть последний слеш появляется всегда.
Как убрать появление слеша в конце, ЕСЛИ ВВЁЛ АДРЕС БЕЗ ПОСЛЕДНЕГО СЛЕША?
p.s. последний слеш появляется всегда, ТОЛЬКО ПРИ АДРЕСЕ
/site/public
, других адресов не касается.