Вопрос:
Как я могу включить результаты https: и http: из одного домена в систему пользовательского поиска Google, но отобразить любой такой результат в iframe с защищенным родительским окном ?
Как он структурирован.
Моя система пользовательского поиска Google в настоящее время выполняет поиск по запросу "mydomainname.com/directory/" с опцией "Включить все страницы, адрес которых содержит этот URL ". Он работает на определенной странице веб-сайта для поиска страниц в указанном каталоге. Цель ссылки, установленная в настройках веб-поиска, представляет собой iframe на той же странице, что и панель поиска.
Окно браузера и iframe src находятся в одном защищенном домене. И поскольку все результаты поиска находятся в каталоге в структуре сайта, все они также находятся в этом же домене.
В настоящее время некоторые результаты отображаются как «https: // ...», а некоторые - как «www ...». Очевидно, это создает ошибку смешанного содержания, когда окно браузера https: // и делается попытка отобразить результат поиска http: // в iframe.
Результаты, которые являются http: //, конечно, также будут работать как https: // urls. Я не знаю, почему страница или файл отображаются в результатах поиска как «www.» или «https: //», когда все они происходят из одного защищенного домена. .
Результаты "http: //" отображаются, даже если я укажу сайт для поиска как https://www.mydomainname.com/directory/
. Я не хочу исключать эти результаты, но хочу, чтобы они отображались при безопасном просмотре сайта.
Цель:
Итак, главное правило, которое мне нужно обойти, заключается в том, что небезопасные страницы или файлы не могут быть загружены в iframe на защищенной веб-странице. Я, очевидно, хочу, чтобы пользователи могли использовать сайт https: //, но тогда мне нужно, чтобы поиск работал таким образом, чтобы обеспечить для этих пользователей все возможные результаты поиска.
Причина, по которой мне нужно, чтобы целью результатов был этот iframe, заключается в том, что это фрейм, который отображает все содержимое веб-страницы. Результаты поиска гармонируют с организацией прочей информации. Таким образом, при выборе ссылки из категории в навигации по странице и выборе результата поиска из результатов настраиваемого поиска выбранный контент отображается в том же месте, в iframe.
Что я пробовал:
Я попытался указать https: // специально в настройках поисковой системы Google (gse) и удалить : 'http'
из строки сценария gcse.src =(document.location.protocol == 'https:' ? 'https:' : 'http:') + '//cse.google.com/cse.js?cx=' + cx;
.
Я просмотрел файл сценария, на который он ссылается: http://cse.google.com/cse.js?cx=012685392925564329750:ghl2znnfada
, но не могу понять, что, возможно, нужно изменить в нем.
В журнале ошибок на консоли я не вижу ничего важного, кроме ожидаемой невозможности загрузки небезопасных страниц при безопасном просмотре. Но есть ли это, что кажется (может быть) актуальным? хотя я могу ошибаться, потому что я тоже не могу его расшифровать:
Mixed Content: The page at
'https://mydomainname.com/directory/index.php' was loaded over HTTPS,
but requested an insecure script 'http://www.google.com/jsapi?
key=ABQIAAAAdCtw6Xq1Q31YAr7VSQOSvxS5g7WKqCWUBuUdhz3-
rUOumR2saRSPGvey2WjYALW7f5_JzakSL3lAEg'. This request has been blocked;
the content must be served over HTTPS.
Небезопасный скрипт в сообщении об ошибке:
www.google.com/jsapi?key=ABQIAAAAdCtw6Xq1Q31YAr7VSQOSvxS5g7WKqCWUBuUdhz3-rUOumR2saRSPGvey2WjYALW7f5_JzakSL3lAEg
Предлагаемые пути решения.
Я открыт для любых возможных методов решения. Я рассмотрел несколько маршрутов, но не уверен, как правильно их выполнить, или мои попытки выполнить их потерпели неудачу.
Я думал, что могут сработать следующие решения:
Показать все результаты в виде ссылок https: // (без исключения), чтобы к ним можно было получить доступ независимо от того, установлено ли безопасное соединение с сайтом или нет.
Перенаправляйте любые ссылки, по которым щелкнули без https: //, чтобы они загружались в iframe как https: //
Измените что-нибудь в страницах и файлах на сервере, чтобы они отображались в результатах поиска только как https: //
Измените что-нибудь в скрипте поисковой системы Google, чтобы он анализировал все найденные результаты как https: //
Каким-то образом отображать ссылки как http: // при небезопасном просмотре и https: // при безопасном просмотре *
* Я не знаю, насколько это будет жизнеспособным или эффективным