N
N
Nikolai2019-04-12 18:03:17
1C-Bitrix
Nikolai, 2019-04-12 18:03:17

How to remove / at the end of bitrix url?

Good afternoon!
There is an old site and there all addresses look like
www.site.ru/katalog/stoly
And there is a new site on Bitrix
www.site-new.ru/katalog/stoly/ - pay attention to / at the end of the address. How to get rid of it?

php_value mbstring.internal_encoding UTF-8
php_value default_charset utf-8
php_value opcache.revalidate_freq 0
php_value max_input_vars 10000
php_value default_socket_timeout 60
Options -Indexes 
ErrorDocument 404 /404.php

<IfModule mod_php5.c>
  php_flag session.use_trans_sid off
  #php_flag default_charset UTF-8
  #php_value display_errors 1
</IfModule>

<IfModule mod_php7.c>
  php_flag session.use_trans_sid off
  #php_flag default_charset UTF-8
  #php_value display_errors 1
</IfModule>

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
  RewriteBase / 
  RewriteCond %{HTTP_HOST} ^test-new.ru$ [NC]
  RewriteRule ^(.*)$ http://www.test-new.ru/$1 [R=301,L]

  ############################################################################
  #### Убираем index.php, если он есть в конце URL                        ####
  ############################################################################
  RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
    # URL cодержит index.php в конце.
  RewriteCond %{REQUEST_METHOD} =GET
    # Выявляем GET запрос в URL (не POST).
  RewriteRule ^(.*)$ %1/ [R=301,L]
    # Удалить index.php из URL.

  ############################################################################
  #### Убираем повторяющиеся слеши (/) в URL                              ####
  ############################################################################
  RewriteCond %{THE_REQUEST} //
    # Проверяем, повторяется ли слеш (//) более двух раз.
  RewriteCond %{QUERY_STRING} !http(s|)://
  # Убедимся что это не урл в  GET
  RewriteRule .* /$0 [R=301,L]
    # Исключаем все лишние слеши.

  ############################################################################
  #### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
  ############################################################################
  RewriteCond %{REQUEST_URI} \..+$
    # Если файл содержит точку.
  RewriteCond %{REQUEST_FILENAME} !-d
    # И это не директория.
  RewriteCond %{REQUEST_FILENAME} -f
    # Является файлом.
  RewriteCond %{REQUEST_URI} ^(.+)/$
    # И в конце URL есть слеш.
  RewriteRule ^(.+)/$ /$1 [R=301,L]
    # Исключить слеш.


  RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$
  RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]

  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>

<IfModule mod_dir.c>
  DirectoryIndex index.php index.html
</IfModule>

<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresByType image/jpeg "access plus 3 day"
  ExpiresByType image/gif "access plus 3 day"
  ExpiresByType image/png "access plus 3 day"
  ExpiresByType text/css "access plus 3 day"
  ExpiresByType application/javascript "access plus 3 day"  
</IfModule>

Answer the question

In order to leave comments, you need to log in

1 answer(s)
K
Kirill Proger, 2019-04-28
@freekirill

RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-l
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$
   RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]

There is such a solution

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question