перенаправление с http на https не работает
Добрый день,
мы установили сертификат на сайт
В htaccess добавили правила перенаправления
Options +FollowSymLinks
RewriteEngine On
RewriteCond %
RewriteCond %
RewriteCond %
RewriteCond %
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 %
RewriteCond %
RewriteRule (.*) /pressroom/news/ [R=301,L]
Цитата |
---|
Дмитрий Яковенко пишет: Если вы пишите редиректы в htaccess, то к битриксу это отношения не имеет |
Вот такое правило должно работать Ну и чего? ТС будет забивать свои 150 ссылок в htaccess? Реврайт не быстрый модуль кстати. Да уж побыстрее реврайта на пхп В вашем примере htaccess будет быстрее, так как при правильной конфигурации запрос на статические файлы css, js, картинки и прочие обработает nginx и до апача очередь не дойдет, т.е. правила реврайта не проверятся. А в случае когда дело дойдет до апача, то у вас уже будет файл, по правилам которого нужно редиректить. В случае с редиректом пхп, нужно пройти весь путь, который описан выше, потом подключить пхп, потом ядро битрикса (а это множество инклудов), к базе законнектится, потом сделать запросики к базе (если мы про OLD_ID) и только потом выдать заголовок редиректа. Для того чтобы понять какой вариант лучше, то нужно сначала четко понимать задачу! Источник Ответ можно найти в документации самого Nginx: На всякий случай, если кто-то найдет тему через поиск. Еще одна популярная проблема — автоматическое добавление / в конце запроса (т.н. trailing slash) на уровне nginx: написать как религия запрещает? Было бы что писать Если у Вас один сайт, то в /etc/nginx/bx/site_avaliable/s1.conf далее далее Совершенно похожий вопрос, перешли на https, сертифкаты установил, ssl в конфиге включил, появилась проблема, ничего не помогает, помогите разобраться, почему у разработчиков нет внятного ответа на эти вопросы, тема то популярная. Всегда нужно СЕОшить, редиректить и т.д. а тут как-то не получается Да это очевидно, видимо я не совсем понимаю механизм работы. Я как рассуждаю, что сначала он перевернёт имя, а потом перейдёт к следующим директивам, описанным ниже и перекинет на 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 Источник готовый сайт лежал на тестовой площадке. в чем тут может быть дело? до этого тм более все работало. ну, знаете, когда «до этого всё работало а сейчас перестало» — чаще всего значит кто то что то сделал, даже несмотря на все заявления, что мол никто ничего не трогал, оно само. все лгут. а если для теста создать новую страничку redirtest.php точно не работает? спасибо. так срабатывает. скорее всего дело в заголовках. Попробуйте прописать в файле /bitrix/php_interface/dbconn.php следующие строки дополнительно: все гораздо гораздо смешнее в файле index.php SetPageProperty(«keywords», $_SEO[«MAIN_PAGE_KEYWORDS»]); КАК ЛЕГКО ПОВАЛИТЬ БИТРИКС! Источник
RewriteCond %
RewriteCond %
RewriteRule (.*) /pressroom/news/ [R=301,L]
Цитата Денис пишет:
150 урлов, а это тока начало рехнешься забивать вручную
Цитата Александр Маджугин пишет:
Реврайт не быстрый модуль кстати.
Цитата Александр Маджугин пишет:
Такой необходимости быть не может ни на одном вменяемо спроектированном сайте.
Цитата Дмитрий Яковенко пишет:
Да уж побыстрее реврайта на пхп
Цитата Дмитрий Яковенко пишет:
Банально сайт перенесли, редиректы старых
урлей, чем плохая задача
Цитата Дмитрий Яковенко пишет:
Если вы пишите редиректы в htaccess, то к битриксу это отношения не имеет
Цитата Денис пишет:
не понятно почему .htacess редиректы не работают
Цитата Спорно. Правила реврайта проверяются всегда. Допустим у вас одна страница + 4-5 js + 2-3 css + 20-30 картинок. Быстрее ли 1 редирект на php чем 32 на mod_rewrite?
Да и реврайт обрабатывает адрес страницы, а не ее содержимое, т.е. картинки и прочее не потянется.
В случае когда мы говорим про инфоблок или списки с тысячами вариантов, то конечно проще сделать программный редирект.
В данном топике задача не описана, а обсуждается решение конкретной проблемы.редирект www и без www
Цитата server <
listen 80;
server_name youdomain.com;
rewrite ^ http://www.youdomain.com$request_uri permanent;
>
Цитата Андрей Панфилов пишет:
сделал через htaccess
Цитата Андрей Панфилов пишет:
сделал через htaccess
Цитата Иван пишет:
На всякий случай, если кто-то найдет тему через поиск. Еще одна популярная проблема — автоматическое добавление / в конце запроса (т.н. trailing slash) на уровне nginx:
Цитата Андрей пишет:
А где поточнее это прописать?
Цитата Андрей пишет:
А где поточнее это прописать?
nginx -t
и если все нормально
service nginx restart
Цитата Если у Вас один сайт, то в /etc/nginx/bx/site_avaliable/s1.conf
nginx -t
и если все нормально
service nginx restart
нужно перенаправлять с www. на без них, и ещё с домена в зоне .рф на .ru.
Перепробовал абсолютно все, писал в .htaccess директивы, которые работали на другом проекте нормально, здесь не работают.
Пробовал писать в /etc/nginx/bx/site_avaliable/s1.conf и в ssl.s1.conf в самом верху:
Цитата Евгений Крохин написал:
server <
listen 80;
Цитата Олег Шамаев написал:
очевидно не будет работать httpsперестала работать функция localredirect
все работало.
через неделю , когда решил посмотреть — то по всему сайту перестала работать функция Localredirect.
Страница просто виснет на этой функции.
потом попробуйте вместо локалредиректа
header(‘Location: http://yandex.ru/ ‘);
видимо дело в моем шаблоне. тк. я кидал свою страницу редирект и он вис.
будем искать..
$APPLICATION->SetPageProperty(«title», $_SEO[«MAIN_PAGE_TITLE»]);
$APPLICATION->SetTitle();
$APPLICATION->SetPageProperty(«description», $_SEO[«MAIN_PAGE_DESCRIPTION»]);
?>
Цитата готовый сайт лежал на тестовой площадке.
все работало.
через неделю , когда решил посмотреть — то по всему сайту перестала работать функция Localredirect.
Цитата Максим Задубин пишет:
строка появилась после того как я удалил закомментированный кусок кода DDD вместе с тегами.обазовалась дырка..
я и не заметил этот один отступ.
у нас тоже перестала работать эта функция на пустом месте. Ни ошибки вам, ни отладка, нашли строку кода старыми методами.
LocalRedirect этот использует метод ядра ForkActions, который создает новый процесс, и передает ему управление, в детали не вдавался, но в ForkActions есть места проверки на наличие системных структур, в нашем случае, он их не находил, и просто делал exit в старом процессе и новый не вызывал.