WP-Rocket Plugin Automatic HTTPS Rewrite не пройшов перевірку AMP
AMP (Accelerated Mobile Pages) — це дуже сувора специфікація HTML5. Якщо є критичні проблеми з AMP, Google не буде їх індексувати. Наприклад, в AMP ви не маєте використовувати // – протокол для представлення URL-адреси HTTP або HTTPS залежно від поточного протоколу сторінки (але в HTML5 ви можете)
CloudFlare HTTPS Rewrite не пройшов перевірку AMP
На жаль, модуль [Automatic HTTPS Rewrites] плагіна ~CloudFlare~ WP Rocket Plugin не проходить перевірку AMP, тому ви повинні вимкнути його, інакше ви отримаєте такі помилки:
- Тег "сценарій" заборонений, за винятком спеціальної форми.
- Обов’язковий тег «сценарій amphtml engine v0.js» відсутній або неправильний.
Оновлення: Виявляється, це НЕ вина CloudFlare. Це плагін WP Rocket WordPress, який примусово вмикає перезапис HTTPS (у //) навіть на сторінках AMP.
Модуль WP Rocket Plugin [Automatic HTTPS Rewrites] переписує всі зображення, таблиці стилів і сценарії з використання http:// або https:// на використання просто // для підтримки гнучкого SSL.
wprocket-plugin-https-protocol-rewrite
CloudFlare запустив той самий HTML через тестовий домен на Cloudflare з увімкненим автоматичним перезаписом HTTP та підтвердив, що причиною цього не є CloudFlare.
- CloudFlare вимикає функції перезапису спеціально для AMP. Але WP-Rocket Plugin має цю опцію на інформаційній панелі, яка знову вмикає його.
- Автоматичне перезапис HTTPS не переписує URL-адреси на // – воно використовує лише повні абсолютні посилання, наприклад https://
cloudflare-automatic-https-rewrites
Якщо ви використовуєте WP-Rocket Plugin, ви можете написати плагін або додати таку функцію до свого шаблону, наприклад 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 Plugin має власну логіку для перезапису HTTPS, яку слід вимкнути, якщо ви використовуєте AMP



