Твиттер-карты (twitter: image или og: image) не разрешают https от общего SSL, включая Cloudflare. Упомянутое обходное решение - создать файл .htaccess и добавить код в , а не , перенаправить twitterbot на общий https. Проблема в том, что это разрывает мои страницы, говоря, что слишком много перенаправлений.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteCond %{HTTP_USER_AGENT} !Twitterbot [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
</IfModule>
При этом, когда я запускаю страницу через Twitter Card Validator, когда у меня есть этот код .htaccess, изображение нормально отображается на валидаторе карты Twitter. Но, как я уже упоминал, веб-сайт ломается из-за слишком большого числа перенаправлений.
Я попытался удалить код .htaccess и поместить изображение твиттер-карты в каталог с именем / social / и поместить это правило страницы в Cloudflare: example.com / social / - отключить безопасность в качестве первого правила (на странице работает только одно правило), и twitterbot просто игнорирует его, даже если я вручную указываю путь к изображению в этом каталоге, это неправильно перенаправление на https.
<meta property="og:image" content="http://example.com/social/image.jpg">
<meta name="twitter:image" content="http://example.com/social/image.jpg">
При проверке страницы в Twitter Card Validator и использовании? utm_source = a-random-number, чтобы убедиться, что он тянет страницу fre sh, он извлекает всю информацию правильно, кроме для изображения. Facebook отлично тянет изображение, это просто несовместимость твиттера с гибким общим SSL-шифрованием Cloudflare. Я не на WordPress и это на Apache. В настоящее время нет файла .htaccess. Есть идеи?
=============
РЕДАКТИРОВАТЬ
Хорошо, все заработало. Решение о добавлении: example.com/social/ - Отключить защиту в правилах SSL-страницы Cloudflare было правильным, но мне также пришлось включить в заголовок два параметра meta og:
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
без изображения не показывается в Twitter Card Validator, но отображается при добавлении. Надеюсь, что это поможет кому-то еще.