`
农村哥们
  • 浏览: 292616 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

apache url rewrite

阅读更多
apache url rewrite
由于web工程要实现伪静态化或者地址迁移,就需要使用这种技术来完成地址的重定向。

当外部请求到达Apache,Apache调用Apache Url Rewrite中的定义来重写由用户浏览器指定请求的URL,最后被重写的URL如果是重定向,则送交浏览器做再一次请求;如果是代理则把重写后的URL交给代理模块请求最终的内容(Content),最后把内容送回给浏览器。

现在开始配置apache使其可以进行url rewrite

首先、在httpd.conf 中找到 #LoadModule rewrite_module modules/mod_rewrite.so
将前面的 # 去掉。目的,使路径重写生效。

然后、在此配置文件最后面增加路径重写配置即可。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/myapp/(.*)$  /$1 [L,PT]
RewriteRule ^/search/(.*)\.html$ /search.jsp\?key=$1 [L,PT]
RewriteRule ^/search/([0-9]+)-([0-9]+)-([0-9]+)-(.*)\.htm$ /search2\.jsp\?key=$1&order=$2&price=$3&page=$4 [L,PT]
</IfModule>

注意:
a、RewriteEngine on  是必须的。让路径重写生效。

b、 RewriteRule ^/myapp/(.*)$  /$1 [L,PT]    此句将myapp过滤掉。一般没有应用好服务器配置的话,用网址打开网站,容易看到应用名。如果你访问应用时,地址栏含有应用名,加上此句话,就可以将你的应用名去掉。即用户不可看到了。  myapp 是你的应用名哦。可别直接复制。

c、注意到 (.*)      $1这些东西了吧。一个括号中的东西,是对应一个$占位的。具体语法,请看专业的文档吧。这里只给简单示例。

RewriteRule ^/search/([0-9]+)-([0-9]+)-([0-9]+)-(.*)\.htm$ /search2\.jsp\?key=$1&order=$2&price=$3&page=$4 [L,PT]

这句话,你就可以看到了。总共4个(),后面有四个$*,相对。位置很重要。位置指的是$1,$2,第一个、第二个位置。

d、在看[L,PT] 这个,这个是有含义的L是最后一个的规则。具体还是看专业文档。我一般就用这两个[L,PT]。我想一般这样也差不多 了。

3、apache 路径重写,是对动态路径的重写。还看最后的一个配置就可以看到了。即达到的效果是,用户访问时,地址栏中,显示的是html文档,但后台tomcat服务器,用的是jsp进行相应。至于apache+tomcat配置。看上篇文章咯。

apache url rewrite 路径重写,就简单写到这里,在稍后会加上系列文章之:apache+tomcat 单IP,多域名配置实践。

关于重写规则如下
1) R[=code](force redirect) 强制外部重定向
强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。
2) F(force URL to be forbidden)禁用URL,返回403HTTP状态码。
3) G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。
4) P(force proxy) 强制使用代理转发。
5) L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N(next round) 重新从第一条规则开始运行重写过程。
7) C(chained with next rule) 与下一条规则关联
如果规则匹配则正常处理,该标志无效,如果不匹配,那么下面所有关联的规则都跳过。
T=MIME-type(force MIME type) 强制MIME类型
9) NS (used only if no internal sub-request) 只用于不是内部子请求
10) NC(no case) 不区分大小写
11) QSA(query string append) 追加请求字符串
12) NE(no URI escaping of output) 不在输出转义特殊字符
例如:RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [r,NE] 将能正确的将/foo/zoo转换成/bar?arg=P1=zed
13) PT(pass through to next handler) 传递给下一个处理
例如:
RewriteRule ^/abc(.*) /def$1 [PT] # 将会交给/def规则处理
Alias /def /ghi
14) S=num(skip next rule(s)) 跳过num条规则
15) E=VAR:VAL(set environment variable) 设置环境变量
分享到:
评论

相关推荐

    Apache URL Rewrite功能配置

    ### Apache URL Rewrite功能配置知识点详解 #### 一、Apache URL Rewrite简介 Apache URL Rewrite功能是Apache Web服务器的一个强大工具,它允许用户通过一系列规则来改变客户端请求的URL,从而实现URL重写、...

    apache urlrewrite防盗链功能配置

    Apache URLRewrite 是一个强大的URL重写工具,它基于mod_rewrite模块,允许网站管理员通过创建规则来改变URL的结构,实现动态网站的静态化、URL重定向等多种功能。在本场景中,我们主要讨论如何利用URLRewrite配置...

    urlrewrite2伪静态与使用文档(IIS)

    urlrewrite2是微软IIS服务器的一个扩展,它是基于Apache的mod_rewrite模块而创建的,用于实现类似的功能。 在IIS服务器上,尤其是对于PHP开发环境,如PHPWAMP,有时需要同时运行不同版本的PHP以支持多个项目。...

    Apache的URL重写规则的标志详细说明

    Apache的URL重写规则是Apache HTTP服务器中一个强大的功能,它允许管理员或开发者通过修改URL结构来实现多种目的,如美化URL、隐藏真实路径、实现动态URL到静态URL的转换等。以下是对Apache URL重写规则中一些常用...

    apache_rewrite语法

    apache_rewrite语法的详细解析,实现php的URL重写。

    UrlRewrite.rar

    UrlRewrite是一款基于Apache服务器的开源URL重写工具,它实现了Apache的mod_rewrite模块的功能,适用于Windows环境下的IIS服务器。UrlRewrite提供了一种简便的方式来定义URL重写规则,让开发者无需深入理解底层HTTP...

    IIS Urlrewrite2

    1. **安装**:下载并安装IIS URL重写2的扩展,通常是`IIS Urlrewrite2.exe`文件,通过IIS Manager进行安装。 2. **添加规则**:在IIS Manager中选择目标站点,然后在“管理服务”下找到“URL重写”,点击“添加规则...

    Apache的ReWrite的应用

    Apache的Rewrite模块是HTTP服务器Apache中的一个强大功能,它允许服务器根据预定义的规则重写URL,这对于网站优化、动态URL转换为静态URL、隐藏真实路径、实现URL短化等场景非常有用。Rewrite模块基于Perl兼容正则...

    iis urlrewrite文件

    不过,这里提到的httpd.conf文件可能与IIS URL Rewrite不直接相关,因为这是Apache服务器的配置文件,而非IIS的。 六、高级功能 1. Inbound Rules和Outbound Rules:Inbound Rules处理进入服务器的请求,Outbound ...

    URLrewrite-实例

    `URLrewrite`是一个基于Java的开源过滤器,它实现了Apache的mod_rewrite功能,广泛应用于Spring、Struts、JSF等Java Web框架中。它提供了强大的规则配置,使得开发者能够灵活地对URL进行重写和重定向。 在使用`URL...

    网站安全urlrewrite教程和jar包

    `urlrewrite`是一个流行的开源Java过滤器,它基于Apache的`Tuckey URLRewriteFilter`,用于在Servlet容器(如Tomcat)中实现URL重写规则。这个jar包提供了强大的配置灵活性,使得开发者能够轻松地定义各种重写规则。...

    URLRewrite帮助文档

    ### URLRewrite使用帮助文档 #### 一、URLRewriteFilter简介 URLRewriteFilter是一个功能强大的Web过滤器,主要用于实现URL的改写操作。它能够帮助开发者将动态URL转换成静态URL,这对于提高用户体验、优化SEO...

    urlrewrite地址重写实例配置说明

    URLRewrite通常与Apache的mod_rewrite或者在Java Web应用中的Tuckey's URLRewriteFilter一起使用。以下将详细介绍URLRewrite的工作原理和实例配置。 **1. URLRewrite工作原理** URLRewrite基于HTTP请求的过程,...

    urlrewrite

    URLRewrite是基于Apache开源项目Tuckey开发的一款强大的URL管理过滤器,它可以方便地进行URL重写和URL映射,使得复杂的服务器端请求路径可以被转换为简洁、易读的URL。在Java Web应用程序中,URLRewrite常用于隐藏...

    URLRewrite.dll 伪静态

    **URLRewrite.dll 伪静态技术详解** 在网站开发中,伪静态技术是一种常见的优化手段,它能够将动态网页的URL转换为静态化的形式,从而提高搜索引擎的友好性,提升用户体验,同时也便于服务器的处理。URLRewrite.dll...

    UrlReWrite(Url重写或伪静态)

    UrlRewrite通常通过编写规则文件来实现URL重写,如IIS的web.config或Apache的.htaccess。规则通常包含正则表达式,用于匹配和转换URL。以下是一个简单的示例: ```xml &lt;match url="^article/([0-9]+)/(.*)$" /&gt; ...

    UrlRewrite例子

    首先,UrlRewrite是Tuckey开源组织提供的一款过滤器,它基于Apache的开源项目 mod_rewrite 的思想,实现了在Servlet容器(如Tomcat)中的URL重写功能。通过在web.xml中配置UrlRewriteFilter,我们可以定义一系列规则...

    urlrewrite完整示例2.6/3.2/4.0jar包

    `URLRewrite`是一款强大的URL重写工具,主要用于Apache Tomcat服务器,它可以让你灵活地管理和重写URL,实现诸如URL美化、隐藏参数、路径映射等功能。在Web开发中,URL重写对于SEO(搜索引擎优化)和提升用户体验都...

    urlrewrite技术研究总结成果

    URLRewrite技术是一种基于Apache服务器的开源URL重写工具,主要功能是通过配置规则来实现对URL的灵活管理和转换,从而实现SEO优化、隐藏真实路径、实现动态网站静态化等多种目的。在本研究总结中,我们将深入探讨URL...

    urlrewrite 3.2.0 java包

    **URLRewrite 3.2.0 for Java:详解与应用** URLRewrite 是一个功能强大的URL重写和转换工具,适用于Java环境。它基于Apache的Tuckey项目,为Web应用程序提供了类似于Apache HTTP服务器的mod_rewrite模块的功能。在...

Global site tag (gtag.js) - Google Analytics