A
A
Alexander2021-06-01 12:28:44
1C-Bitrix
Alexander, 2021-06-01 12:28:44

Why is there a double redirect?

You need to remove index.php from the address bar and add / if section
Everything seems to be ok for the user, but the search engine saw a double redirect.

here without a slash https://site.ru/catalog/kantstovary_dlya_shkoly
redirects to, but without HTTPS: site.ru:443/catalog/kantstovary_dlya_shkoly
and then to https and a slash: https://site.ru/catalog/kantstovary_dlya_shkoly/

similarly and index.php
here is a request from index: https://site.ru/catalog/kantstovary_dlya_shkoly/in...
redirection to http site.ru:443/catalog/kantstovary_dlya_shkoly
then to https https://site.ru/catalog/kantstovary_dlya_shkoly/

how to remove intermediate redirect?
did according to the instructions

Here is the code itself

Options -Indexes
ErrorDocument 404 /404.php

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

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
   #  Директива включает редиректы.
RewriteBase /
   # Без директивы (.*) = /$1 будет /var/wwww/site/web/$1  с директивой  = /$1
Options +FollowSymLinks
   # Разрешает переход по символическим ссылкам.
php_flag display_errors off
  # запретить отображение ошибок  (требование монитора качества)
php_flag allow_url_fopen off
  # запретить  использовать удаленные файлы (требование проактивной защиты)

  ############################################################################
  #### Выбор основного зеркала (с www или без www)                        ####
  ############################################################################
      # 1. Удалить www
  RewriteCond %{ENV:HTTPS} on
      #Если включен https
  RewriteRule .* - [E=SSL:s]
      #То создаем переменную  ssl с текстом s
  RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
      # Проверяем, содержит ли домен www в начале URL.
  RewriteRule ^(.*)$ http%{ENV:SSL}://%1/$1 [R=301,L]
      # Перенаправляем удаляем www

############################################################################
#### Перенаправляем протокол https на http                              ####
############################################################################
#RewriteCond %{HTTPS} on
   # Проверяем наличие https в URL.
#RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
   # Перенаправляем протокол на http.

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

############################################################################
#### Добавляем слеш(/), если его нет, и это не файл.                    ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
   # Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
   # Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
   # В URL нет точки (файл).
RewriteCond %{REQUEST_URI} ^(.+)$
 # В URL есть хоть один символы
RewriteRule ^(.*)$ $1/ [L,R=301]
   # Добавляем слеш в конце.



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

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question