CloudFlare 的 HTTPS改写 是把HTTPS页面的 HTTP链接 尽可能的改写成HTTPS. 这样就不会出现页面部分不安全的小灰锁 (Mixed Content)
我用的是WP Rocket缓存插件, 这个插件里可以在CloudFlare 的基础上改写为更为简洁的形式, 改写成 // 这样一来浏览器就会根据当前的协议来访问相应的版本. 虽然理论上说所有链接都可以由 http:// 或者 https:// 全改写成和协议无关的 // 链接, 但是很显然 AMP 并不允许你这样做.
最简单的方法就是全局关掉, 或者添加一个页面规则来把HTTPS重写关掉.
还可以在 functions.php 模板函数里添加以下代码来只在 AMP 页面里关掉这个功能.
1 2 3 4 5 6 7 8 9 10 | 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 ); } } } 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 ); } } } add_action( 'wp', 'disable_cloudflare_automatic_https_rewrite_amp' );
英文: CloudFlare 的 HTTPS改写 使AMP 验证失效
GD Star Rating
loading...
本文一共 198 个汉字, 你数一下对不对.loading...
上一篇: WordPress 博客使用 AMP 移动加速的技术和技巧
下一篇: 英国国家最低工资和国家生活工资的区别
扫描二维码,分享本文到微信朋友圈
我反正所有的都是HTTPS链接,不用转换.你搞太多的各种判断,到最后会很乱的.
启用这个功能是怕在 上HTTPS之前 的博文里用的是 HTTP的链接 以防万一嘛