Проблемы перехода на HTTPS Drupal 7

Аватар пользователя reddiamond reddiamond 11 января в 22:33

Доброго дня!
Перевожу сайт на https. Возникли проблемы с яндекс картами и sitemap. Подскажите:

1) yamaps не отображаются при https, где что подправить? при http все норм

2) как сделать чтобы Sitemap отображала ссылки https вместо http/ решено

Еще подскажите может быть есть подробная инструкция перевода drupal 7 на https
И кроме яндекс карт и сайтмапа какие проблемы могут вылезти?

Комментарии

Аватар пользователя Semantics Semantics 11 января в 22:37

Нет никаких проблем с переводом друпала любой версии на https, если у вас не прописаны везде ссылки с http-протоколом.

Почему у вас не работают на https яндекс-карты - ответ в консоли браузера, вызывается по F12.
Ссылки в сайтмапе изменятся как только в settings.php пропишите $base_url с https

Аватар пользователя VasyOK VasyOK 11 января в 22:48

sitemap - если это xmlsitemap - в настройках модуля урл с https указать надо.
Другие проблемы, да вполне могут быть. Сайт показывайте, эксрасенсы в отпуске.

Аватар пользователя reddiamond reddiamond 11 января в 22:57

xmlsitemap победил, все просто, спасибо, а вот с яндекс картами не нахожу в настройках где можно указать

Аватар пользователя reddiamond reddiamond 11 января в 22:51

В сеттингс первым делом прописал $base_url = 'https://мойсайт';

А вот что говорит F12:
(index):1 Mixed Content: The page at 'https://мойсайт/' was loaded over HTTPS, but requested an insecure script 'http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU&wizard=Drupa...'. This request has been blocked; the content must be served over HTTPS.

Аватар пользователя Semantics Semantics 11 января в 23:12

Видимо, в модуле захардкодили вставку карт через http, писался он в те времена, когда https был в диковинку

Аватар пользователя ivnish ivnish 12 января в 11:34
<?php
/**
 * Provide static API url, use YAMAPS_STATIC_API_URL instead direct calling.
 */
function _yamaps_static_api_url() {
  global 
$is_https;

  return 

$is_https 'https://static-maps.yandex.ru/1.x/' 'http://static-maps.yandex.ru/1.x/';
}

/**
 * Provide geocoder url, use YAMAPS_GEOCODER_URL instead direct calling.
 */
function _yamaps_geocoder_url() {
  global 
$is_https;

  return 

$is_https 'https://geocode-maps.yandex.ru/1.x/' 'http://geocode-maps.yandex.ru/1.x/';
}

/**
 * Provide legal agreement url, use YAMAPS_LEGAL_AGREEMENT_URL instead direct calling.
 */
function _yamaps_legal_agreement_url() {
  global 
$is_https;

  return 

$is_https 'https://legal.yandex.ru/maps_api/' 'http://legal.yandex.ru/maps_api/';
}
?>

Там есть проверка на https, но, видимо, у топикстартера она не срабатывает

Хотя на месте авторов модуля, я бы лучше сделал https в виде чекбокса в настройках, вместо автоопределения

Аватар пользователя Andruxa Andruxa 13 января в 11:16

С двух слешей надо начинать урл - будет работать и так и так.
//static-maps.yandex.ru/...

Аватар пользователя reddiamond reddiamond 12 января в 11:49
1

Решил проблему достаточно жестко, в файлике yamaps.module все HTTP поменял на HTTPS.
Теперь и при заходе на сайт через http и через https карта отображается.
Наверное должно быть более деликатное решение, но пока оставлю такое.
Всем спасибо!

Аватар пользователя ivnish ivnish 12 января в 12:30

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

Правильное решение: создать issue в трекере, попытаться вместе с авторами разобраться почему у вас не работает их проверка и найти решение этой проблемы