.htaccess - 将文件 url 替换为 cdn url

标签 .htaccess cloudflare

我使用 Cloudflare 免费 CDN,因为我需要在某些区域使用 https,所以我无法在主域上激活它。因此,经过一些谷歌研究后,我发现我可以将选定的文件格式替换为网址(作为镜像/cdn),但无法使其工作。

所以基本上这就是我想要做的,当 people/website/script 请求或访问 maindomain.com/img.png 时,将其重定向到 cdn.cdn.com/img.png (其中“cdn.cdn.com”)设置在与插件域相同的文件夹中并加载相同的 htaccess)并自动提供 img.png,无需更改任何代码。这是因为 cloudflare 允许通过 CNAME 记录缓存内容,所以我想自动将 maindomain.com 替换为 CDN CNAME 记录 (cdn.cdn.com)。另外,我想知道如何使其适用于单个文件夹。

这是我测试过的一段代码

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^maindomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.maindomain\.com$
#if you want to apply to a single folder 
RewriteCond ^htatest\
RewriteCond $1 "\.(jpg|png)$" [NC]
RewriteRule ^(.*) http://cdn.cdn.com/$1 [L]
</IfModule>

最佳答案

将您的规则替换为:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?maindomain\.com$ [NC]
RewriteRule ^(htatest/.+?\.(?:jpg|png))$ http://cdn.cdn.com/$1 [L,R=301,NC]

关于.htaccess - 将文件 url 替换为 cdn url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15858600/

相关文章:

.htaccess - 将所有子域重定向到一页

.htaccess 中的正则表达式错误,URL 中带有哈希标记

linux - 禁止使用 curl/wget 远程下载网页

mysql - Cloudflare 错误 522

c# - HTTP 响应错误 503

php - 当用户拥有特定 cookie SetEnvIf 时绕过 .htaccess 登录

.htaccess - joomla 网站中 Feedburner 的 HTTPS RSS URL 问题

proxy - 我如何在不更改名称服务器的情况下使用 cloudflare

javascript - 如何修复 Cloudflare Worker 中的 'Uncaught (in promise) TypeError: Cannot read property ' 方法“未定义”?

apache - header 添加 Access-Control-Allow-Origin "*"导致内部服务器错误