您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Apache服务器中URL Rewrite技术

添加时间:2011-3-14  添加: admin 

Apache不愧为一款全球著名的web服务器软件。它的功能非常强大,其实我们日常需要用到的功能,apache都提供了,只不过需要我们熟练掌握它的配置方法。其中非常有用的一项技术叫做“URL Rewrite”,首先提一下,如果想发挥URL rewrite技术的强大功能,你必须精通正则表达式,因为归根结底,URLRewrite引擎就是一个过滤器,你需要使用正则表达式来告诉服务器你的过滤规则了!!前天的时候由于项目中涉及到这方面的内容,所以研究了一下,在这把常用的几种用途示例写出来,希望能够起到抛砖引玉的作用!(呵呵,其实我一直不明白,抛出砖头去,怎么能引回玉来呢?)

1>  From Static to Dynamic (网页静态化)
    这项技术其实很常见的。你想,如果各大门户网站为每一条新闻都要创建一个静态网页的话,年长日久,能有多少网页文件啊!!!况且不说存储限制,管理起来也很难。其实他们都采用了网页静态化的技术。比如你查看新华网上的http://www.xinhuanet.com/2006/1234.html 页面,看起来你访问的是一个静态网页,其实apache可以自动把它转化成一个动态页面,比如http://www.xinhuanet.com/2006/news.php?id=1234,呵呵,知道了吧,这样多简单,网站管理人员根本不需要为每条新闻写一张网页,只要把它录入数据库即可。当用户访问时,服务器会自动动态生成相应的页面。 下面说一下具体的代码

RewriteEngine  on
RewriteBase    /2006/
RewriteRule    ^([0-9]+)\.html$     news.php?id=$1  [T=application/x-httpd-php]

至于RewriteBase 和RewriteRule指令的用法请参考apache文档。

2>借助于referer来实现防盗链功能
    前面已经说过,基于referer的检测是不可靠的,但也是行之有效的。这里把代码给大家解释一下:

RewriteCond   %{HTTP_REFERER}    !^$
RewriteCond   %{HTTP_REFERER}     !^http://www.yoursitename.com/   [NC]
RewriteRule   .*\.gif$        -                                    [F]

上面的代码将会阻止你网站上的所有的图片被盗链。RewriteCond表示在什么条件下应用RewriteRule指定的重写规则。在这里,两条RewriteCond指令实际上指定如果referer的值不以"http://www.yoursitename.com/ 开头,则应用下面RewriteRule指定的规则,而这里RewriteRule指令的含义就是返回无效地址,拒绝用户的请求。如果你想要警告一下盗链的人,你可以在这里返回一个小图片,提示它们“严禁盗链”!! 呵呵,读到这里,相信你对平时在论坛看到的“防盗链”图片幕后的机制已经很清楚了吧!!这些都得归功于apache!!

3> 过滤访问者IP地址
    我曾经以为过滤访问IP地址是防火墙或网关做的,比如南开影视,在校外就访问不了!到底怎么实现的呢??其实大多数是apache服务器对访问者IP进行了过滤,而不是网关。因为你服务器的管理员不一定就能控制了网关啊!再说在服务器上设置过滤规则要灵活方便的多。具体怎么设置,使用URL Rewrite技术就可以,但经过对比,我推荐大家另外一种好办法:那就是通过设置.htaccess文件!使用.htaccess文件可以灵活地对每一个文件夹进行控制!!
    比如我不想某个政府部门访问到我的站点的内容,那可以通过在.htaccess中加入该部门的IP而将它们拒绝在外。例如:

order allow,deny
deny from 210.10.56.32
deny from 219.5.45.
allow from all

第二行拒绝某个IP,第三行拒绝某个IP段,也就是219.5.45.0~219.2.45.255 ,呵呵,想要拒绝所有人?用deny from all好了。你不止可以用IP地址,也可以用相应网站的域名来设定。

4> 多台服务器负载平衡
    你想,163的web服务器肯定不止一台(其实100台也不止),但我们输入的地址永远都是www.163.com ,具体如何在多台服务器之间平衡负载?? 有很多种办法,一般都是在DNS服务器上做手脚,其实借助URL Rewrite技术也可以实现同样的功能! 但由于性能方面可能会受影响,这种方法并不是很常用,在这里也不再赘述,请大家直接参考apache的文档!
 

最后,说一下别的两件事:第一,今天弄清楚了lqqm上把鼠标移到图片上就出现“发送图片到手机”标签的实现原理。它实际上完全是借助于 java,我再次感觉到java的功能并不能小瞧。请不要拿它去跟C++/Java/C#作比较,大家还记得“长颈鹿和羊”的故事吧,它们各有所长,谁都取代不了谁!在代码中,它首先通过document.images数组来获得当前页面中的所有图片对象,然后再为这些对象的 onmouseover事件加上响应函数。在响应函数中使用createElement来创建“发送图片到手机”标签,然后使用 insertAdjacentElement函数把新创建的对象插入到document中,难点之一就是你需要熟练地掌握java中DOM的知识和函数。第二,今天明白了如何提供在线html编辑功能,其实有免费的HTML editor 插件,我们只需要学会如何使用即可,并不用自己去实现编辑功能。

关键字:Apache典服务器 URL Rewrite 技术

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站