Apache的ReWrite的应用mod_rewrite模块使用(7)
来源:asp之家 发布时间:2010-04-04 18:44:00
标签:apache,mod_rewrite,url,rewrite,虚拟主机,服务器
内容的处理
新旧URL(内部的)
说明:
假定已经把文件bar.html改名为foo.html,需要对老的URL向前兼容,即让用户仍然可以使用老的URL,而感觉不到文件被改名了。
方案:
通过以下规则内部地重写老的URL为新的:
代码:
RewriteEngine on
RewriteBase /~quux/
RewriteRule ^foo.html$ bar.html
新旧URL(外部的)
说明:
仍然假定已经把文件bar.html改名为foo.html,需要对老的URL向前兼容,但是要让用户得到文件被改名的暗示,即,其浏览器的地址栏中显示的是新的URL。
方案:
作一个HTTP的强制重定向以改变浏览器和用户界面上的显示:
代码:
RewriteEngine on
RewriteBase /~quux/
RewriteRule ^foo.html$ bar.html [R]
依赖于浏览器的内容
说明:
至少对重要的顶级页面,有时候有必要提供依赖于浏览器的最佳的内容,即对最新的Netscape提供最大化的版本,对Lynx提供最小化的版本,而对其他的浏览器则提供一个功能一般的版本。
方案:
对此,内容协商无能为力,因为浏览器不提供其那种形式的类型,所以只能在HTTP头"User-Agent"上想办法。以下规则集可以完成这个操作:如果HTTP头"User-Agent"以"Mozilla/3"开头,则页面foo.html被重写为foo.NS.html,而后重写操作终止;如果是"Lynx"或者版本号为1和2的"Mozilla",则重写为foo.20.html;而其他所有的浏览器收到的页面则是foo.32.html:
代码:
RewriteCond % ^Mozilla/3.*
RewriteRule ^foo.html$ foo.NS.html [L]
RewriteCond % ^Lynx/.* [OR]
RewriteCond % ^Mozilla/[12].*
RewriteRule ^foo.html$ foo.20.html [L]
RewriteRule ^foo.html$ foo.32.html [L]
动态镜像
说明:
假定,需要在我们的名称空间里加入其他远程主机的页面。对FTP服务器,可以用mirror程序以在本地机器上维持一个对远程数据的最新的拷贝;对网站服务器,可以用类似的用于HTTP的webcopy程序。但这两种技术都有一个主要的缺点:此本地拷贝必须通过这个程序的执行来更新。所以,比较好的方法是,不采用静态镜像,而采用动态镜像,即,在有数据请求时自动更新(远程主机上更新的数据)。
方案:
为此,使用Proxy Throughput功能(flag [P]),以映射远程页面甚至整个远程网络区域到我们的名称空间:
代码:
RewriteEngine on
RewriteBase /~quux/
RewriteRule ^hotsheet/(.*)$ http://www.tstimpreso.com/hotsheet/$1 [P]
RewriteEngine on
RewriteBase /~quux/
RewriteRule ^usa-news.html$ http://www.quux-corp.com/news/index.html [P]
反向动态镜像
说明:
...
方案:
代码:
RewriteEngine on
RewriteCond /mirror/of/remotesite/$1 -U
RewriteRule ^http://www.remotesite.com/(.*)$ /mirror/of/remotesite/$1
通过Intranet取得丢失的数据
说明:
这是一种在受防火墙保护的(内部的)Intranet(www2.quux-corp.dom)上保存和维护实际数据,而虚拟地运行企业级(外部的)Internet网站服务器(www.quux-corp.dom)的巧妙的方法。这种方法是外部服务器在空闲时间从内部服务器取得被请求的数据。
方案:
首先,必须确保防火墙对内部服务器的保护,并只允许此外部服务器取得数据。对包过滤(packet-filtering)防火墙,可以如下制定防火墙规则:
代码:
ALLOW Host www.quux-corp.dom Port >1024 --> Host www2.quux-corp.dom Port 80
DENY Host * Port * --> Host www2.quux-corp.dom Port 80
按你的实际配置,只要对上例稍作调整即可。接着,建立通过代理后台获取丢失数据的mod_rewrite规则:
代码:
RewriteRule ^/~([^/]+)/?(.*) /home/$1/.www/$2
RewriteCond % !-f
RewriteCond % !-d
RewriteRule ^/home/([^/]+)/.www/?(.*) http://www2.quux-corp.dom/~$1/pub/$2 [P]


猜你喜欢
- 国内的虚拟机一般不提供.htaccess功能(据我所知,discuz的主机好像提供此功能),而在国外主机中,.htaccess功能似乎是标配
- 引言:网站PR值(Page Rank)在网站优化和搜索引擎排名中起到一个不小的作用,就本人对PR 更新的预测,特地和大家分享一下.googl
- 网易科技讯 5月24日消息,谷歌刚刚发布了Android 2.2版本操作系统,而根据国外媒体的报道,日前谷歌已经安排好了代的Android
- 访问Web服务器是许多局域网用户经常要做的一项“功课”,在频繁访问过程中,不少朋友积累了一些Web服务器访问经验,这些经验常常会帮助他们快速
- 在2006年6月的美国《连线》杂志上,该杂志的记者Jeff Howe(杰夫.豪)首次推出了众包(Crowdsourcing)的概念,Howe
- Fatcow是一家创始于1998年的老牌虚拟主机服务商,它有一个非常有趣而且易记的名字“肥牛”,并且它的机房使用的是100%的风能发的电,是
- eWeek网络版刊文称,即使是最忠实的Google“粉丝”,也未必对其发展过程中的奇闻趣事都了如指掌
- 多少日ip的网站才能够上吃喝?终于得到一个很好的答案在很多的站长站上问了这个问题,(包括在这,很感谢站长的热心回答),终于,得到了一个觉得很
- Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等
- 服务器安全一直以来都是大家关注的一个热门话题,虽然服务器安全问题很棘手,不过我们也并非无计可施。我想各位朋友可从以下几个方面着手,就能够做到
- 作为破坏力较强的黑客攻击手段,DDoS是一种形式比较特殊的拒绝服务攻击。作为一种分布、协作的大规模攻击方式,它往往把受害目标锁定在大型Int
- Windows7正式版才刚刚发布,所以现在就对其进行总结评论显然为时过早,我们只能说这款操作系统目前看来比Vista要优秀许多,而且如果你使
- 1、http2.4.1以前: 第一种 直接拒绝访问打开 httpd.conf 文件,将一下配置追加到文件最后。<
- 我们可以用两种方法显示M盘的:一、修改注册表方式:1. 单击“开始”,然后单击“运行”。2. 在“打开”框中,键入 regedit,然后单击
- 无论你试图从即将坏掉的存储驱动器抢救数据,将归档备份到远程存储,还是在别处对活动分区制作一份完美副本,都要知道如何安全可靠地复制驱动器和文件
- 昨天在VMware下新装CentOS7,本来想利用ftp将tomcat包传进去,但发现没有安装ftp,就使用“ yum -y install
- 目前大多数CPU都支持浮点运算单元FPU,FPU作为一个单独的协处理器放置在处理器核外,但是对于嵌入式处理器,浮点运算本来就少用,有些嵌入式
- 见到论坛里有部分朋友反映发布内容,内容缩略图选择为“站内选择”方式上传图片,上
- 首先我们来看下外部链接,外部链连接需要注意以下几点:1 链接数量多少按照关键词从其他网页链接到该网页中出现的数量来判断网页对该关键词的相关性
- 辛辛苦苦用一个月把流量升到3万,空间受不了,空间提供商说要服务器网站才能正常运转,否则空间经常会无法打开,而租个服务器最少要3000元,对于