一、需求:
因公司带宽问题,所以想把静态资源移置CDN上(阿里或腾讯),但是某些前台js不支持跨域操作(createjs),但是页面文件为jsp页面,未移置到CDN上,createjs在对页面中的跨域图片就无权修改,所以想都在同一域名进入,页面文件正常访问apache下的,指定静态文件定位到CDN地址上。
二、解决方案
1. 没有用到createjs的配置URL为CDN上的资源。
2. 用到createjs的配置URL为域名映射的apache下对应的URL。
三、apache的配置
这里只是指定apache下某目录资源被访问跳转到CDN上请求,不是所以请求。如果是所以,可以直接配置在httpd.conf中。
1. 配置.htaccess,文件放在被访问的目录下
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase / # 在.htacess文件中被支持,如果是服务器配置文件,此规则会被忽略
RewriteRule ^(.*)$ http://frp.xxxxx.com/xxx/games/jianren2/$1 [P]
# RewriteRule ^(.*)$ http://frp.xxxxx.com/$1 [P] # P(force proxy) 强制使用代理转发。
</IfModule>
<Files .htaccess>
order allow,deny
deny from all
</Files>
引用
http://www.jb51.net/article/25476.htm
http://www.freehao123.com/park-domains/
2. 配置httpd.conf
# LoadModule rewrite_module modules/mod_rewrite.so 去除前面的 #
# 配置需要跳转的静态文件目录
<Directory "D:/Develop/Apache2.2/test/udp/games/jianren2">
Options FollowSymLinks
AllowOverride All # 如为None则不跳转
</Directory>
引用
http://www.jb51.net/article/47889.htm
3. windows下创建.htaccess文件方法
1) 打开Windows内建的记事本;
2) 选取另存新文件“文件->另存为”;
3) 在另存为的“保存类型”下拉选单中选取“所有文件”类型,可以选择utf-8,也可以是ansi
4) 这时就可在“文件名”中输入.htaccess;
5) 选取要另存的路径再按下保存,一个.htaccess 文件就新增完成。
引用
http://blog.sina.com.cn/s/blog_558839ae0100ev90.html
如:目录结构
DocumentRoot "D:/Develop/Apache2.2/test"
D:\Develop\Apache2.2\test\test 不需要跳转的目录
D:\Develop\Apache2.2\test\test\index.html apache下的此文件可以正常访问
D:\Develop\Apache2.2\test\udp\games\jianren2 为需要跳转到CND的目录
D:\Develop\Apache2.2\test\udp\games\jianren2\index.html apache下的此文件不能被访问,而是直接跳转到CDN,因为AllowOverride All,同时目录下有.htaccess文件指定了跳转规则。
效果:
已成功跳转的页面:
apache下正常访问的页面:
apache下没有配置.htaccess时被访问到的页面