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

时间:2013-04-07 03:36:13

标签: .htaccess cloudflare

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

所以基本上这就是我想做的事情,当人们/网站/脚本请求或访问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>

1 个答案:

答案 0 :(得分:2)

用以下内容替换您的规则:

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]