Как удалить конечный слеш?

314
12 января 2017, 07:52

Приветствую!

Имеем, скажем, такую структуру сайта на Bitrix:

<a href="http://site.ru/poezda">Поезда</a>
  <a href="http://site.ru/poezda/poezd1">Поезд 1</a>
  <a href="http://site.ru/poezda/poezd2">Поезд 2</a>
<a href="http://site.ru/kontakty">Контакты</a>
<!-- В конце ссылок нет слешей -->

При переходе по первой (Поезда) или последней (Контакты) ссылкам в конец адресной строки добавляется слеш, т.е. получается http://site.ru/poezda/ или http://site.ru/kontakty/ соответственно.
Я так понимаю это происходит из-за того, что это "Разделы" (Папки, которые содержат файлы .section.php и index.php)

Подскажите пожалуйста, как избавиться от этих слешей в конце?


P.S. Файл .htaccess стандартный, содержит эти строки для роутинга:

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>

UPD:

при добавлении правила в urlwrite.php ничего не поменялось :(

$arUrlRewrite = array(
  array(
    "CONDITION" => "#^/poezda#",
    "PATH" => "/poezda/index.php",
  )
);

в CONDITION пробовал указывать различные вариации, такие как #^/poezda#, #^/poezda, /poezda и пр.

UPD 2

При попытке добавить файл (а не раздел) и описать правило - слеш всё равно добавился в конце. Как побороть это правило?

Answer 1

В Битриксе для управления путями есть (как видно из .htaccess) файл /bitrix/urlrewrite.php, но вот в чем загвоздка, одно дело вы хотите создать маршруты которых нет (виртуальные) и тогда отсутствие слеша обосновано, но когда вы реальной директории пытаетесь его убрать тут возникает вопрос, зачем ?

Answer 2
RewriteRule ^(.*)/?$ /bitrix/urlrewrite.php [L]

Если проблема в обработке - то добавить возможный слеш в правила Rewrite

Если в эстетике - правка urlrewrite.php

READ ALSO
Превью в виде картинки из файла MS Word

Превью в виде картинки из файла MS Word

Здравствуйте, понадобилось сделать превью вордовского файла в виде картинки, что б еще сохранялось форматирование текста

264
Неверно задаю массив в php запросе

Неверно задаю массив в php запросе

Здравствуйте, уважаемые пользователи стакаОшибка состоит с вытягиванием категорий с БД

295
Что такое $_SERVER[&#39;REQUEST_URI&#39;], Почему там полный адрес сторонних сайтов?

Что такое $_SERVER['REQUEST_URI'], Почему там полный адрес сторонних сайтов?

Начал собирать простенькую статистику на сайтеРешил в том числе отслеживать на какой странице именно находится пользователь (по какому...

331
Изменить качество видео с помощью php

Изменить качество видео с помощью php

Нужно при загрузке видеофайла на сервер сохранять его в исходном и хуже качествах с расширением avi или mp4Как это можно реализовать?

333