通过 Apache 配置提升社交媒体分享率的实操方案
一 核心思路与衡量指标
二 启用 HTTPS 与 HTTP/2
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
# 可选:启用 HTTP/2(需模块与编译支持)
Protocols h2 http/1.1
DocumentRoot /var/www/example.com
<Directory /var/www/example.com>
Require all granted
</Directory>
</VirtualHost>
# 可选:将 HTTP 重定向到 HTTPS
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
三 社交元数据与可抓取性配置
# 启用模块
a2enmod headers
a2enmod rewrite
# 将社交元数据注入到 <head>(在所有响应前添加)
Header always set X-Robots-Tag "index, follow"
Header always set Link '<https://example.com/sitemap.xml>; rel="sitemap"; type="application/xml"'
# 可选:为图片资源设置长缓存,利于社交平台缓存预览图
<FilesMatch "\.(?:png|jpe?g|gif|webp)$">
Header set Cache-Control "public, max-age=31536000, immutable"
</FilesMatch>
<meta property="og:title" content="页面标题">
<meta property="og:description" content="页面摘要,建议不超过160字">
<meta property="og:image" content="https://example.com/assets/og-image.jpg">
<meta property="og:url" content="https://example.com/page">
<meta property="og:type" content="article">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="页面标题">
<meta name="twitter:description" content="页面摘要">
<meta name="twitter:image" content="https://example.com/assets/twitter-image.jpg">
四 性能优化让预览更快更完整
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css \
application/javascript application/json application/x-javascript
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
五 日志监控与持续优化
LogLevel warn
CustomLog "|/usr/sbin/rotatelogs /var/log/apache2/access_log.%Y-%m-%d 86400" combined
ErrorLog "|/usr/sbin/rotatelogs /var/log/apache2/error_log.%Y-%m-%d 86400"