`

apache利用.htaccess进行反向域名绑定

阅读更多
一、需求:
    因公司带宽问题,所以想把静态资源移置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>

引用


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>

引用


3. windows下创建.htaccess文件方法
1) 打开Windows内建的记事本;
2) 选取另存新文件“文件->另存为”;
3) 在另存为的“保存类型”下拉选单中选取“所有文件”类型,可以选择utf-8,也可以是ansi
4) 这时就可在“文件名”中输入.htaccess;
5) 选取要另存的路径再按下保存,一个.htaccess 文件就新增完成。
引用



如:目录结构
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时被访问到的页面

  • 大小: 158.2 KB
  • 大小: 187.6 KB
  • 大小: 128.4 KB
  • 大小: 158.2 KB
  • 大小: 51.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics