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

Wild    15

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

Некоторое время назад клиент подключил провайдера оплаты и работал с ним нормально некоторое время.
После этого был приобретен сертификат 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    339
1 час назад, Wild сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Wild    15

Отключал SEOFIX, не помогает!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Wild    15

Вдогонку...


Проблема РЕШЕНА!
Отца русской демократии спала такая конструкция в .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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Wild    15

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

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

Изменено пользователем Wild

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
markimax    1 643
2 часа назад, Wild сказал:


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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Wild    15

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

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

Изменено пользователем Wild

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    339

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Wild    15

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Wild    15

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Wild    15

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    339
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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Wild    15

Хм...

Интересно девки пляшут!
Спасибо за науку, буду знать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Legenda123    0
В 07.06.2017 в 05:45, Wild сказал:

Вдогонку...


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

 

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

Снимок.JPG

Снимок2.JPG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
markimax    1 643
1 минуту назад, Legenda123 сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Legenda123    0

на что дать URL?

6 минут назад, markimax сказал:

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    339
7 часов назад, Legenda123 сказал:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Legenda123    0
В 13.02.2018 в 02:34, Dotrox сказал:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    339
8 часов назад, Legenda123 сказал:

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

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

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу