Плагин WP-Rocket Автоматическая перезапись HTTPS не проходит проверку AMP
AMP (Accelerated Mobile Pages) — это очень строгая спецификация HTML5 . Если есть критические проблемы с AMP, Google не будет их индексировать. Например, в AMP вы не должны использовать // — протокол для представления URL-адреса HTTP или HTTPS в зависимости от текущего протокола страницы (но в HTML5 вы можете)
CloudFlare HTTPS Rewrite не проходит проверку AMP
К сожалению, модуль [Automatic HTTPS Rewrites] плагина ~CloudFlare~ WP Rocket не проходит проверку AMP, поэтому вы должны отключить его, иначе вы получите такие ошибки, как:
- Тег «сценарий» запрещен, за исключением особой формы.
- Обязательный тег «сценарий amphtml engine v0.js» отсутствует или неверен.
Обновление: оказывается, это НЕ вина CloudFlare. Это плагин WP Rocket WordPress, который принудительно разрешает перезапись HTTPS (в //) даже на страницах AMP.
Модуль WP Rocket Plugin [Automatic HTTPS Rewrites] переписывает все изображения, таблицы стилей и скрипты с использования http:// или https:// на использование только // для поддержки гибкого SSL.
wprocket-плагин-https-протокол-переписать
CloudFlare запустил тот же HTML-код через тестовый домен в Cloudflare с включенной автоматической перезаписью HTTP и подтвердил, что это не вызвано CloudFlare.
- CloudFlare специально отключает функции перезаписи для AMP. Но у плагина WP-Rocket есть эта опция на панели инструментов, которая снова включает его.
- Автоматическая перезапись HTTPS не перезаписывает URL-адреса в // — она использует только полные абсолютные ссылки, например https://
cloudflare-automatic-https-переписывает
Если вы используете плагин WP-Rocket, вы можете написать плагин или добавить в свой шаблон следующую функцию, например functions.php. Следующее отключает только эту «Автоматическую перезапись HTTPS» на страницах AMP, например is_amp_endpoint().
add_action( 'wp', 'disable_cloudflare_automatic_https_rewrite_amp' );
function disable_cloudflare_automatic_https_rewrite_amp() {
if (defined( 'AMP_QUERY_VAR') && function_exists( 'is_amp_endpoint') && is_amp_endpoint()) {
$do_rocket_protocol_rewrite = apply_filters( 'do_rocket_protocol_rewrite', false );
if (( get_rocket_option( 'do_cloudflare', 0) && get_rocket_option( 'cloudflare_protocol_rewrite', 0) || $do_rocket_protocol_rewrite)) {
remove_filter( 'rocket_buffer', '__rocket_protocol_rewrite', PHP_INT_MAX );
remove_filter( 'wp_calculate_image_srcset', '__rocket_protocol_rewrite_srcset', PHP_INT_MAX );
}
}
}
WP-Rocket не основан на Cloudflare, но имеет опции для настройки Cloudflare.
- Автоматическая перезапись HTTPS на Cloudflare безопасна для использования с AMP
- Плагин WP-Rocket имеет собственную логику для перезаписи HTTPS, которую следует отключить, если вы используете AMP.



