当前位置:首页 > Apache > 正文内容

Apache URLRewriter

canca14年前 (2011-07-23)Apache499

今日折腾网站,不得不用到了Apache 的Rewrite功能,虽说我对正则表达式并不陌生,但这东西学完就忘,忘了再学一样吃力,并且正则表达式只是学习Rewrite的一个方面。半天下来心急火燎,最终事没有办成,最后还是静下心来琢磨,总算蒙混了过去,这里做个备忘,希望对后来的人有所帮助。

URL Rewrite:翻译过来就是网址重写。用了网址重写功能的网站实际有两套网址,一套是表面上的,给访问者和搜索引擎用的,是假的,因为实际上并不存在;还有一套是真实的网址,是真正的幕后工作者,但只有网站管理者才知道。URL Rewrite的作用就是将假网址映射到真网址,换句话说就是欺骗网友,开个玩笑。
那网址重写这有什么用呢?每个使用者的目的都不一样,我也不多说了。
下面举个例子:
比如下面这个手机号码查询网,你输入网址 http://www.abc.biz/13888888888,看上去13888888888是个目录,实际上不是,虽然理论上可以每个手机号创建一个目录,但实际上有很多问题,这里是采用了网址重写功能,实际的真正工作的网址可能是 http://www.abc.biz/mobile.php?no=13888888888,那么当用户访问前者的时候,Apache如何将前者映射成后者呢,就是利用网址重写功能。

至于如何在Apache中启用URL Rewrite功能呢,这里我不罗嗦了,网上有文章有的是,下面我写几个例子,一例胜千言!

例一:
RewriteRule   1\.htm$      2.htm
用途:将1.htm文件映射成2.htm,当用户请求当前目录下的1.htm文件的时候,Apache实际上读取2.htm的内容,返回给用户,但浏览器地址栏里仍然是1.htm,用户并不知道他看到是2.htm文件的内容。这个例子基本上是个白痴例,但能说明一个问题,就是RewriteRule指令中假网址和真网址的位置,最开始接触RewriteRule的时候,我就搞混过两者的位置。

例二:
RewriteRule (.+)\.htm$ $1.php
用途:将xxx.htm文件映射成xxx.php,反之的写法如下:
RewriteRule (.+)\.php$ $1.htm
上面的两个例子只是通过映射文件后缀名来迷惑别人。

例三:
RewriteRule ^([0-9]+).\htm$ index.php?id=$1
用途:将 xxx.htm 映射成 index.php?id=xxx,其中xxx为纯数字。

例四:
RewriteCond %{http_host} ^shoujihao.biz [NC]
RewriteRule ^(.*)$ http://www.abc.biz/$1 [L,R=301]
用途:将不带www的网址(shoujihao.biz)请求跳转到带www的网址(www.abc.biz)请求。

例五:
RewriteRule ^index.htm$ / [L,R=301]
用途:将对index.htm(比如:http://www.shoujihao.biz/index.htm)的网址请求,跳转到网站默认页面(比如:http://www.shoujihao.biz)

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/223.html

标签: Apache
分享给朋友:

“Apache URLRewriter” 的相关文章

windows下apache与tomcat整合

jdk1.5.0_04http://java.sun.com/javase/downloads/index_jdk5.jsp在环境变量里面JAVA_HOME=C:\jdk1.5.0_04 tomcat6http://apache.etoak.com/tomcat/tomcat-6/v6.0.18/s...

apache对页面进行压缩和页面缓存来提升性能

            网站的访问速度是由多个因素所共同决定的,这些因素例如应用程序的响应速度、网络带宽、服务器性能、与客户端之间的网络传输速度等等。其中最重要的一个因素是应用程序本身的响应...

Apache Tomcat Jk 多虚拟主机配置方法

准备工作: 1.Apache Server 2.2 2.mod_jk.so 3.Tomcat 7 步骤: 1.Copy mod_jk.so to Apache 2.2/modules/ 2.modify Apache 2.2/config/httpd.conf Add: # module mod_j...

授权Apache2 + PHP读写目录权限

摘要:您需要将目录的所有者设置为PHP使用的用户(Web服务器用户)。步骤1:确定PHP用户创建一个包含以下内容的PHP文件:<?php echo `whoami`; ?>将其上传到您的Web服务器。输出应类似于以下内容:www-data因此,PHP用户是w...

APACHE如何里一个站点绑定多个域名?用ServerAlias servername

APACHE2如何里一个站点绑定多个域名?用ServerAlias以前很笨,要使多个域名指向同一站点总是这样写:<VirtualHost *:80> ServerAdmin i@kuigg.com DocumentRoot /www/kuigg.com...

Tomcat启动报错或警告: org.apache.catalina.webresources.Cache.getResource Unable to add the resource

关于缓存空间不足倒置无法添加资源的解决办法!相信很多朋友都遇到过了吧。报错信息如下:**为任意位置org.apache.catalina.webresources.Cache.getResource Unable to add the resourc...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。