Доброго дня!
Перевожу сайт на https. Возникли проблемы с яндекс картами и sitemap. Подскажите:
1) yamaps не отображаются при https, где что подправить? при http все норм
2) как сделать чтобы Sitemap отображала ссылки https вместо http/ решено
Еще подскажите может быть есть подробная инструкция перевода drupal 7 на https
И кроме яндекс карт и сайтмапа какие проблемы могут вылезти?
Комментарии
Нет никаких проблем с переводом друпала любой версии на https, если у вас не прописаны везде ссылки с http-протоколом.
Почему у вас не работают на https яндекс-карты - ответ в консоли браузера, вызывается по F12.
Ссылки в сайтмапе изменятся как только в settings.php пропишите $base_url с https
sitemap - если это xmlsitemap - в настройках модуля урл с https указать надо.
Другие проблемы, да вполне могут быть. Сайт показывайте, эксрасенсы в отпуске.
xmlsitemap победил, все просто, спасибо, а вот с яндекс картами не нахожу в настройках где можно указать
В сеттингс первым делом прописал $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.
А как карты то подключаются? Вручную или модулем каким?
Модуль yamaps
Выводится через блок Yandex Map
Видимо, в модуле захардкодили вставку карт через http, писался он в те времена, когда https был в диковинку
<?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 в виде чекбокса в настройках, вместо автоопределения
я бы по умолчанию наверное поставил https и проблемы бы не было
С двух слешей надо начинать урл - будет работать и так и так.
//static-maps.yandex.ru/...
Решил проблему достаточно жестко, в файлике yamaps.module все HTTP поменял на HTTPS.
Теперь и при заходе на сайт через http и через https карта отображается.
Наверное должно быть более деликатное решение, но пока оставлю такое.
Всем спасибо!
Да, это решение не есть хорошее, потому что если авторы модуля выпустят обновление (а это произойдет, потому что модуль не заброшен), то ваши изменения будут затерты.
Правильное решение: создать issue в трекере, попытаться вместе с авторами разобраться почему у вас не работает их проверка и найти решение этой проблемы
Достаточно было бы в settings.php прописать
$is_https = TRUE;