Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Исключить страницу из HTTPS


 Поделиться

Рекомендованные сообщения

Сломал мозг, СПАСАЙТЕ!
Преамбула...

Некоторое время назад клиент подключил провайдера оплаты и работал с ним нормально некоторое время.
После этого был приобретен сертификат SSL и осуществлен переезд на HTTPS.
Здесь начались проблемы...
Для обновления статуса платежей используется callback с сервера оплаты на сайт магазина.
Но система приема платежей не поддерживает SNI на клиентской стороне и как результат - она видит сертификат хостера, а не магазина.
Из-за этого возникает конфликт и callback не срабатывает.

Переезжать на собственный VPS/VDS или менять провайдера платежей в ближайшее время клиент не собирается.
Поставлена задача решить проблему.
Как вариант - предложили для обратной связи поюзать обычный HTTP.
Но у меня не получается ОТКЛЮЧИТЬ перенаправление на HTTPS по адресу callback!

Дано:
Opencart 2.0.3.1.

В настройках включен SSL.
Установлен SEO Fix HTTPS 2.x.
Установлен SEOPro OCJ.
ЧПУ сейчас ОТКЛЮЧЕНО (не спрашивайте почему, не в этом сейчас вопрос)!
В config.php на фронте:

define('HTTP_SERVER', 'http://some_site.ru/');

define('HTTPS_SERVER', 'https://some_site.ru/');


Адрес нужной страницы, куда удаленный сервер оплаты должен отправить запрос с данными - some_site.ru/index.php?route=payment/my_module/callback
Для перенаправления всех страниц на HTTPS в .htaccess используется инструкция вида:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
 
Попробовал добавить строку исключения:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !(.*)payment/my_module/callback(.*)$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Не спасает, все равно редирект срабатывает.

Закоментировал вообще все указанные выше строки, но редирект остался!
Причем на всех страницах!
ЧТНТД?
 
Изменено пользователем Wild
Ссылка на комментарий
Поделиться на других сайтах

1 час назад, Wild сказал:

Закоментировал вообще все указанные выше строки, но редирект остался!
Причем на всех страницах!
ЧТНТД?

Посмотрите, что у вас в сеофиксе настроено.

Ссылка на комментарий
Поделиться на других сайтах


Вдогонку...


Проблема РЕШЕНА!
Отца русской демократии спала такая конструкция в .htaccess:
 

Цитата

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !(.*)payment/my_module/callback(.*)$
RewriteCond %{QUERY_STRING} !(.*)payment/my_module/callback(.*)$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

 

Изменено пользователем Wild
Ссылка на комментарий
Поделиться на других сайтах

Попробуйте отключить в настройках сервера HSTS (это к хостеру)
https://ru.wikipedia.org/wiki/HSTS

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Спасибо за инфу, не знал о HSTS.
Но проблема решена добавлением строк указанных выше.
Кстати именно хостер их и подсказал.

Хотя, может и HSTS он тоже отрубил.

Изменено пользователем Wild
Ссылка на комментарий
Поделиться на других сайтах

2 часа назад, Wild сказал:


Хотя, может и HSTS он тоже отрубил.

Скорее всего.
Потому что ваша проблема была бы решена в самом начале :)

Это "стандартное" правило исключения.
Но вот если включен HSTS (а сейчас у хостеров часто при включении SSL сертификата HSTS включается автоматически) - то оно работать не будет

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Понял, спасибо, буду знать.
Век живи - век учись! )))

P.S. Я так и думал, что на стороне хостера врубается SSL принудиловка, ибо инструкции в htaccess не срабатывали.

Изменено пользователем Wild
Ссылка на комментарий
Поделиться на других сайтах

У HSTS есть один маленький, но очень существенный нюанс - его отключение на сервере не отменяет его действия, именно в этом его суть.

То есть, если зайти на сайт с включённым HSTS, а затем выключить HSTS и попробовать зайти в том же браузере на этот сайт по http - браузер всё равно откроет https, потому что он уже запомнил, что здесь HSTS и запомнил он это на период указанный в параметре max-age заголовка HSTS.

Так что, если HSTS действительно был включён, вы бы даже после его отключения не смогли бы открыть ссылку на колбек по http, если используете тот же браузер.

В браузере, который ещё не знает, что здесь было HSTS никаких проблем с http не будет.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


Как ни странно, но никаких проблем не возникло.
Как только хостер пристал мне строки для htaccess, все заработало.

Ссылка на комментарий
Поделиться на других сайтах

Перепроверил...
Браузер действительно запоминает режим.
Через режим "инкогнито" убедился, что сработала именно строка с QUERY_STRING.

Ссылка на комментарий
Поделиться на других сайтах

Сработало сразу скорее всего потому, что callback со стороны мерчанта - это запрос не из браузера в общеизвестном смысле.
Он вряд ли запоминает режимы, кукисы и т.п., а просто обращается по указанному адресу и читает ответ.
А браузер действительно запоминает.
Пришлось перед проверкой каждый раз закрывать режим "инкогнито" и открывать его снова, чтобы все заработало корректно.

Ссылка на комментарий
Поделиться на других сайтах

23 минуты назад, Wild сказал:

Через режим "инкогнито" убедился, что сработала именно строка с QUERY_STRING.

Вообще, ответ здесь: http://httpd.apache.org/docs/current/mod/mod_rewrite.html

 

Цитата

REQUEST_URI

The path component of the requested URI, such as "/index.html". This notably excludes the query string which is available as its own variable named QUERY_STRING.

 

То есть, в случае mod_rewrite Апача REQUEST_URI не содержит параметров запроса в отличии от $_SERVER["REQUEST_URI"] в php.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


  • 8 месяцев спустя...
В 07.06.2017 в 05:45, Wild сказал:

Вдогонку...


Проблема РЕШЕНА!
Отца русской демократии спала такая конструкция в .htaccess:
 

 

я тоже столкунлся с такой проблемой, попробовал этот вариант, вроде что то шевельнулось, а точнее при входе на эту страницу у мен начала появляться такая функция в браузере, есть еще какие нибудь предложения? Чтобы он автоматически отключался

Снимок.JPG

Снимок2.JPG

Ссылка на комментарий
Поделиться на других сайтах


1 минуту назад, Legenda123 сказал:

кто нибудь поможет?

А как ?!
Мы не умеем гадать по скринам.
URL надо давать

Ссылка на комментарий
Поделиться на других сайтах

7 часов назад, Legenda123 сказал:

кто нибудь поможет?

У вас на странице есть контент, который грузится по http, поэтому браузер и пишет о незащищённых частях страницы.

Это могут быть, например, изображения вставленные через визуальный редактор или ссылки на скрипты/стили, которые прописаны прямо в шаблоне.

Ссылка на комментарий
Поделиться на других сайтах


В 13.02.2018 в 02:34, Dotrox сказал:

У вас на странице есть контент, который грузится по http, поэтому браузер и пишет о незащищённых частях страницы.

Это могут быть, например, изображения вставленные через визуальный редактор или ссылки на скрипты/стили, которые прописаны прямо в шаблоне.

Это не изображение, вообщем мне надо исключить с https страницу серфинга(букс) а он с https не работает, то есть когда просматриваешь сайт рекламодателя, белый экран

Ссылка на комментарий
Поделиться на других сайтах


8 часов назад, Legenda123 сказал:

надо исключить с https страницу серфинга(букс)

Если за редирект на https отвечает только правило в .htaccess, то достаточно добавить туда исключение с адресом этой страницы (пример есть выше в теме).

Если не помогает, значит либо неправильно добавляете исключение, либо не только в .htaccess дело (и тогда вспоминайте всё, что вы делали при переходе на https).

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.