@mega-sinyak

Как довести штекер до ума?

Имеется штекер:
/.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, других адресов не касается.
  • Вопрос задан
  • 27 просмотров
Решения вопроса 1
@mega-sinyak Автор вопроса
DirectorySlash off

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 [L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule .* /public/$0 [L]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
R.TIGER Санкт-Петербург
от 80 000 ₽
IQ Vector Краснодар
от 140 000 до 160 000 ₽
19 сент. 2020, в 12:38
10000 руб./за проект
19 сент. 2020, в 12:04
1000 руб./в час
19 сент. 2020, в 11:59
20000 руб./за проект