You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache服务器(.htaccess)重写外部图片URL问题求助

解决Apache+WordPress下CDN非WebP图片重写至代理URL的问题

原规则失效原因

你当前的.htaccess规则里,RewriteCond %{REQUEST_FILENAME}.jpg -f这类条件是检查本地服务器是否存在对应文件,但你的图片都存储在DigitalOcean Spaces CDN上,本地服务器并没有这些文件,导致条件永远不成立,规则自然无法触发。


解决方案分两种场景处理

场景1:图片URL为本地路径(如/wp-content/uploads/2024/05/xxx.png)

这类请求会经过你的Apache服务器,可以修改.htaccess规则,直接匹配图片格式并代理,无需检查本地文件:

<IfModule mod_rewrite.c>
 RewriteEngine On

 # 仅对支持WebP的浏览器生效
 RewriteCond %{HTTP_ACCEPT} image/webp
 # 匹配所有非WebP的图片格式(可按需添加gif等其他格式)
 RewriteRule \.(jpg|jpeg|png)$ https://proxied-url/converttowebp/https://halorumah.sgp1.digitaloceanspaces.com%{REQUEST_URI} [P,L]
</IfModule>

注意:确保Apache已启用mod_rewrite、mod_proxy和mod_proxy_http模块,Ubuntu/Debian系统可通过以下命令启用:

a2enmod rewrite proxy proxy_http
systemctl restart apache2

场景2:图片URL为完整CDN域名(如https://halorumah.sgp1.digitaloceanspaces.com/wp-content/xxx.png)

这类请求会直接访问CDN,不会经过你的Apache服务器,.htaccess无法拦截,需通过WordPress代码替换URL:

在主题的functions.php文件中添加以下代码:

// 替换文章内容中的CDN非WebP图片URL
add_filter('the_content', 'replace_non_webp_cdn_images');
function replace_non_webp_cdn_images($content) {
    $cdn_base = 'https://halorumah.sgp1.digitaloceanspaces.com';
    $proxy_base = 'https://proxied-url/converttowebp';
    
    // 匹配CDN下的jpg/jpeg/png图片
    $pattern = '/' . preg_quote($cdn_base, '/') . '(\/wp-content\/.*?\.(jpg|jpeg|png))/i';
    $replacement = $proxy_base . '$0';
    
    return preg_replace($pattern, $replacement, $content);
}

// 替换附件图片的CDN URL
add_filter('wp_get_attachment_image_src', 'replace_attachment_cdn_url', 10, 4);
function replace_attachment_cdn_url($image_data, $attachment_id, $size, $icon) {
    $cdn_base = 'https://halorumah.sgp1.digitaloceanspaces.com';
    $proxy_base = 'https://proxied-url/converttowebp';
    
    if (strpos($image_data[0], $cdn_base) !== false && !preg_match('/\.webp$/i', $image_data[0])) {
        $image_data[0] = $proxy_base . $image_data[0];
    }
    
    return $image_data;
}

内容的提问来源于stack exchange,提问作者Loderunner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:34:53