Не работают редиректы битрикс

перенаправление с http на https не работает

Добрый день,
мы установили сертификат на сайт
В htaccess добавили правила перенаправления

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

теперь если в адресной строке браузера набрать название_сайта.ru либо www.название_сайта.ru то открывается https://название_сайта.ru и далее если ходить по страницам сайта то все работает нормально
но если в поисковике задать запрос с выдачей на наш сайт то открыватся страница https://название_сайта.ru/bitrix/urlrewrite.php с 404 кодом
Например: в яндексе набираю «текст запроса» выдает наш сайт, перехожу а там https://название_сайта.ru/bitrix/urlrewrite.php с 404 кодом

Для удобной настройки редиректов через панель управления сайтом рекомендую воспользоваться модулем Редирект мастер из Маркетплейс.
Цель модуля — максимально облегчить настройку редиректов, а также выявлять заходы на сайт по битым, кривым или устаревшим ссылкам. Далее с таких url можно создать редирект в пару кликов.

Модуль также позволяет задать главное зеркало сайта, на которое будут перенаправляться все запросы.
В вашем случае в качестве главного зеркала в настройках модуля нужно будет указать » https://domain.ru «.
Это всего лишь одна настройка, она делается через панель управления сайтом и не требует навыков программирования.
При этом нужно будет вернуть типовой файл .htaccess, чтобы исключить проблемы в htaccess.

Буду рад, если модуль поможет в дальнейшем решать подобные проблемы.

Источник

Создание 301 Redirect в 1C Bitrix если не работает редирект урлов с query_string в .htaccess

Сегодня вечером столкнулся с проблемой. После переноса и ре дизайна моими коллегами сайта на 1C Битрикс(который я мягко скажем не недолюбливаю) понадобилось сделать 301й редирект со старых адресов основных каталогов на новые. Пробовали и Redirect 301 /category http://web-site.ru/new-category и permanent и RewriteRule. Хоть это вопрос к правилам работы модуля apache mod_rewrite но Битрикс(его настроенный .htaccess) не хотел обрабатывать адреса с указанными GET параметрами. То есть урлы с query_string — не переадресовывает, а без — работают. Ссылку вида «/catalog/goods/list.php?SECTION_ID=761» — ни в какую не хотел перекидывать на новый адрес.

Читайте также:  Почему не работаешь ответы

Пришлось импровизировать 😉 В прочем такая импровизация у меня не впервые, за 2 года работы в СЕО-компании, мы с моими коллегами: сео-оптимизатором и программистом перекопали десятки самописных движков расположенных на разных серверах и написанных на разных фреймворках. Так что вот вам хитрые костыли для редиректа на PHP хоть для 1C Битрикса хоть для сайта на MyNameFramework.

Создаем файл seo-redirect.php и в нем пишем следующий код:

Далее подключаем этот файл в шапке основного файла отвечающего за работу движка. В 1C Bitrix с которым возникла проблема я подключил данный файл данным образом: в папке /bitrix/header.php добавил в самом верху документа строку:

И указал список список адресов нуждающихся в редиректе. Мы просто сверяем текущий URI с адресом нуждающимся в переадресации и если значения совпадают то с помощью header делаем дело!

В интернете так и не нашел решение данной проблемы на Битриксе, а тема поднимается не на одном форуме. Кто то советует купить модуль для движка за 560 гривен, кто то советует модуль короткие ссылки то же не бесплатный. А мы с вами работаем головой 😉

Источник

301 редирект в Bitrix

С битриксом раньше не работал, так шо прошу прощения за глупые вопросы

Нужно сделать много редиректов лезу в .htaccess

обваливает сайт в ошибку 500

и после него и вобще где бы то ни было

пробовал дописать правило в urlrewrite

Цитата
Дмитрий Яковенко пишет:
Вопрос к битриксу не имеет ни какого отношения.

Если вы пишите редиректы в htaccess, то к битриксу это отношения не имеет

Вот такое правило должно работать
RewriteCond % ^/content/main/news$
RewriteCond % ^show_item=55$
RewriteRule (.*) /pressroom/news/ [R=301,L]

Цитата
Дмитрий Яковенко пишет:
Если вы пишите редиректы в htaccess, то к битриксу это отношения не имеет

Вот такое правило должно работать
RewriteCond % ^/content/main/news$
RewriteCond % ^show_item=55$
RewriteRule (.*) /pressroom/news/ [R=301,L]

Ну и чего? ТС будет забивать свои 150 ссылок в htaccess? Реврайт не быстрый модуль кстати.

Цитата
Денис пишет:
150 урлов, а это тока начало рехнешься забивать вручную
Цитата
Александр Маджугин пишет:
Реврайт не быстрый модуль кстати.

Да уж побыстрее реврайта на пхп

Цитата
Александр Маджугин пишет:
Такой необходимости быть не может ни на одном вменяемо спроектированном сайте.
Цитата
Дмитрий Яковенко пишет:
Да уж побыстрее реврайта на пхп
Цитата
Дмитрий Яковенко пишет:
Банально сайт перенесли, редиректы старых
урлей, чем плохая задача
Цитата
Дмитрий Яковенко пишет:
Если вы пишите редиректы в htaccess, то к битриксу это отношения не имеет
Цитата
Денис пишет:
не понятно почему .htacess редиректы не работают
Цитата
Спорно. Правила реврайта проверяются всегда. Допустим у вас одна страница + 4-5 js + 2-3 css + 20-30 картинок. Быстрее ли 1 редирект на php чем 32 на mod_rewrite?

В вашем примере htaccess будет быстрее, так как при правильной конфигурации запрос на статические файлы css, js, картинки и прочие обработает nginx и до апача очередь не дойдет, т.е. правила реврайта не проверятся.
Да и реврайт обрабатывает адрес страницы, а не ее содержимое, т.е. картинки и прочее не потянется.

А в случае когда дело дойдет до апача, то у вас уже будет файл, по правилам которого нужно редиректить.

В случае с редиректом пхп, нужно пройти весь путь, который описан выше, потом подключить пхп, потом ядро битрикса (а это множество инклудов), к базе законнектится, потом сделать запросики к базе (если мы про OLD_ID) и только потом выдать заголовок редиректа.

Для того чтобы понять какой вариант лучше, то нужно сначала четко понимать задачу!
В случае когда мы говорим про инфоблок или списки с тысячами вариантов, то конечно проще сделать программный редирект.
В данном топике задача не описана, а обсуждается решение конкретной проблемы.

Источник

редирект www и без www

Цитата
server <
listen 80;
server_name youdomain.com;
rewrite ^ http://www.youdomain.com$request_uri permanent;
>

Ответ можно найти в документации самого Nginx:

На всякий случай, если кто-то найдет тему через поиск. Еще одна популярная проблема — автоматическое добавление / в конце запроса (т.н. trailing slash) на уровне nginx:

Цитата
Андрей Панфилов пишет:
сделал через htaccess
Цитата
Андрей Панфилов пишет:
сделал через htaccess

написать как религия запрещает?

Было бы что писать

Цитата
Иван пишет:
На всякий случай, если кто-то найдет тему через поиск. Еще одна популярная проблема — автоматическое добавление / в конце запроса (т.н. trailing slash) на уровне nginx:
Цитата
Андрей пишет:
А где поточнее это прописать?
Цитата
Андрей пишет:
А где поточнее это прописать?

Если у Вас один сайт, то в /etc/nginx/bx/site_avaliable/s1.conf

далее
nginx -t
и если все нормально
service nginx restart

Цитата
Если у Вас один сайт, то в /etc/nginx/bx/site_avaliable/s1.conf

далее
nginx -t
и если все нормально
service nginx restart

Совершенно похожий вопрос, перешли на https, сертифкаты установил, ssl в конфиге включил, появилась проблема,
нужно перенаправлять с www. на без них, и ещё с домена в зоне .рф на .ru.
Перепробовал абсолютно все, писал в .htaccess директивы, которые работали на другом проекте нормально, здесь не работают.
Пробовал писать в /etc/nginx/bx/site_avaliable/s1.conf и в ssl.s1.conf в самом верху:

ничего не помогает, помогите разобраться, почему у разработчиков нет внятного ответа на эти вопросы, тема то популярная. Всегда нужно СЕОшить, редиректить и т.д. а тут как-то не получается

Цитата
Евгений Крохин написал:
server <
listen 80;
Цитата
Олег Шамаев написал:
очевидно не будет работать https

Да это очевидно, видимо я не совсем понимаю механизм работы. Я как рассуждаю, что сначала он перевернёт имя, а потом перейдёт к следующим директивам, описанным ниже и перекинет на https, полагаю что это делается как-то проще даже но не могу сообразить, не знаю в какой конфигурационный файл нужно что прописывать. То что написано на «тостере» там все в одно файле, и сертификаты и перенаправление. В окружении битрикса же все в разных местах, сертификаты в /etc/nginx/bx/conf/ssl.conf а «прослушка» в /etc/nginx/bx/site_enabled/s1.conf или в /etc/nginx/bx/site_enabled/ssl.s1.conf причем для начала ему нужно слушать 80 порт, потом переводить на 443, если я конечно все правильно понимаю.

В s1.conf такая конструкция:

На мой взгляд для СЕО и безопасности эти редиректы бесполезны, если не вредны, но тем не менее в вашем случае нужно:

1. В файле /etc/nginx/bx/site_enabled/s1.conf

2. В файле /etc/nginx/bx/site_enabled/ssl.s1.conf

3. В корне сайта нужно создать файл .htsecure

Источник

перестала работать функция localredirect

готовый сайт лежал на тестовой площадке.
все работало.
через неделю , когда решил посмотреть — то по всему сайту перестала работать функция Localredirect.

в чем тут может быть дело?
Страница просто виснет на этой функции.

до этого тм более все работало.

ну, знаете, когда «до этого всё работало а сейчас перестало» — чаще всего значит кто то что то сделал, даже несмотря на все заявления, что мол никто ничего не трогал, оно само. все лгут.

а если для теста создать новую страничку redirtest.php

точно не работает?
потом попробуйте вместо локалредиректа
header(‘Location: http://yandex.ru/ ‘);

спасибо. так срабатывает.
видимо дело в моем шаблоне. тк. я кидал свою страницу редирект и он вис.

скорее всего дело в заголовках.
будем искать..

Попробуйте прописать в файле /bitrix/php_interface/dbconn.php следующие строки дополнительно:

все гораздо гораздо смешнее

в файле index.php

SetPageProperty(«keywords», $_SEO[«MAIN_PAGE_KEYWORDS»]);
$APPLICATION->SetPageProperty(«title», $_SEO[«MAIN_PAGE_TITLE»]);
$APPLICATION->SetTitle();
$APPLICATION->SetPageProperty(«description», $_SEO[«MAIN_PAGE_DESCRIPTION»]);
?>

Цитата
готовый сайт лежал на тестовой площадке.
все работало.
через неделю , когда решил посмотреть — то по всему сайту перестала работать функция Localredirect.
Цитата
Максим Задубин пишет:
строка появилась после того как я удалил закомментированный кусок кода DDD вместе с тегами.обазовалась дырка..
я и не заметил этот один отступ.

КАК ЛЕГКО ПОВАЛИТЬ БИТРИКС!
у нас тоже перестала работать эта функция на пустом месте. Ни ошибки вам, ни отладка, нашли строку кода старыми методами.
LocalRedirect этот использует метод ядра ForkActions, который создает новый процесс, и передает ему управление, в детали не вдавался, но в ForkActions есть места проверки на наличие системных структур, в нашем случае, он их не находил, и просто делал exit в старом процессе и новый не вызывал.

Источник

Оцените статью