@mirage_lav

301 редирект в Битриксе и самолезущий /?

У сайта на Битриксе решили привести в порядок каталогизацию, и дабы впредь не мандражировать и не бегать с лишними переадресациями, при тасовках по разделам, было решено усреднить все товары на "виртуальный" раздел, т.е. ссылка для любых товаров получилась вида сайт/catalog/раздел для всех/наименование товара, вместо сайт/catalog/раздел1/подраздел1/наименование товара

Но не хочется ведь терять проиндексированные страницы, поэтому была попытка настроить 301 по типу
Redirect 301 /catalog/старый раздел/ https://сайт/catalog/раздел для всех/

но вылезло 2 проблемы, 1 он начинает уводить страницу раздела на "раздел для всех", но это вроде вылечилось точной
Redirect 301 /catalog/старый раздел/. https://сайт/catalog/раздел для всех/

Хотя не могу быть уверенной что это правильно.

И тут за дело взялось
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)

которое логично ставит в конце слеш и новоиспеченный адрес говорит что это не он и все равно кидает на 404
пробовала последнюю строчку выше заменить на
RewriteRule ^(.+)/$ $1 [R=301,L]
и он падает в такой цикл что страница вообще перестает грузиться.

ставить в новом адресе / после .html ... наверное не хотелось бы. А откуда он его берет хз, так бы все ровненько встало.

пока писала вроде нашла рабочий вариант // поправка, все равно кидает в цикл :( и почему-то в яндекс браузере под админом редиректит без слеша, а в мозиле гостем слеш так и остается
RewriteRule ^catalog/раздел 1/раздел2/(.+)$ /catalog/раздел для всех товаров/$1 [L,R=301]
RewriteCond %{REQUEST_URI} \..+$
# Если файл содержит точку.
RewriteRule ^(.+)/$ /$1 [R=301,L]
# Исключить слеш.

Боюсь спугнуть, потому что 22 строки перенаправлений будет, ночером буду проверять.

Вот такой вышел... то ли вопрос, то ли ответ. Может кому пригодится, а я буду признательна за идеи
  • Вопрос задан
  • 687 просмотров
Пригласить эксперта
Ответы на вопрос 2
1. в битриксе уже давно реализован "основной раздел"
2. Тут я писал о стандартных настройках для битрикс, думаю будет полезно.
3. ставить слеш логично но не так и иногда его нужно и удалять, к прмеру если это физический файл о этом я уже писал.
4. 22 строки перенаправления это ниочем, так же как и 6000 строк, сколько нужно столько и делайте.
проблемы начинаются от 50К строк.
5. список урлов было стало весь
Ответ написан
Комментировать
@mirage_lav Автор вопроса
Основной раздел - это да, знаю пользую, но иногда есть потребность перетасовать из раздела в раздел ощутимо(была в кучу и виниловая и минеральная плитка, а теперь их нужно разделить на 2 раздела, т.к. ее уже много, и именно разделить, а не продублировать)

Да, спасибо огромное, я из ваших трудов и брала... да видимо или не все или не так. Сейчас попробую на другом сайте, основной функционирует в работе, его только если ночью помучить.

О, спасибо. Буду в курсе- это радует что не так страшно.

Это я готовила строки для простого перенаправления

Redirect 301 /catalog/kovrolin/. https://сайт/catalog/pf/
Redirect 301 /catalog/kovrolin/vystavochnyy_kovrolin/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/vinilovaya_plitka/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/kovrovaya_plitka/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/parket/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/stenovoy_dekor/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/probka/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/laminat/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/plintus_i_dekor/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/plintus_i_dekor/moduleo/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/plintus_i_dekor/nmc/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/plintus_i_dekor/orac_decor/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/kley_i_khimiya/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/podlozhka/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/porozhek/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/aksessuary/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/arkhiv/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/arkhiv/ellade/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/iskusstvennaya_trava/. https://сайт.ru/catalog/pf/
Redirect 301 /catalog/plintus_i_dekor/. https://сайт.ru/catalog/pf/

Все ведут в одно и то же место


А это весь базовый .htacces
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_log /home/l/lavstotd/stokpol.rf/public_html/PHP_errors.log
php_value error_reporting 2047
php_value log_errors_max_len 0

php_value max_input_vars 10000


Order allow,deny
Deny from all
Satisfy All

Options -Indexes
ErrorDocument 404 /info/404


php_flag session.use_trans_sid off
#php_value display_errors 1
#php_value mbstring.internal_encoding UTF-8



Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?)
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [R=301,L]



DirectoryIndex index.php index.html



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"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы