`
haimav
  • 浏览: 57190 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

URL重写最简单的例子(服务器)

阅读更多

下载ISAPI_Rewrite.ISAPI_Rewrite分精简(Lite)和完全(Full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理.不过对于有服务器的朋友,精简版也就够啦.精简版下载地址:http://www.helicontech.com/download/,就是那Lite Version (free).

2.安装.msi的文件,和装一般程序一样装就可以了,俺就装在D:\ISAPI_Rewrite.


3.接下来一步比较重要哦,看仔细喽.打开Internet 信息服务,右键,web站点属性,电ISAPI筛选器选项卡.添加筛选器,名称自己填,路径自己指定ISAPI_Rewrite.dll,然后确定.


4.来测试一下.新建一个fazo.asp,里面写上
<%=request.querystring("inso")%>

效果就是执行的时候fazo.asp?inso=*****

5.这一步很重要哦,开始添加rewrite规则.正则,好头痛,幸亏这个例子比较简单.
找到ISAPI_Rewrite目录,把httpd.ini的只读属性去掉,打开编辑.我们要把fazo.asp?inso=im286映射成为fazo-im286.html这样的类型,需要在httpd.ini里加上这么一行:

RewriteRule /fazo-([0-9,a-z]*).html /fazo.asp\?inso=$1

保存.


然后访问:http://www.aaa.com/fazo-abc.html时,就实际访问的是:
http://www.aaa.com/fazo.asp?inso=abc

 

 

 

其他方式  转

URL重写,其实就是把带一大堆参数的url,变成一个看上去很规矩的url,主要目的是为了搜索引擎。

举例

/viewthread.jsp?id=1234
/viewthread.jsp?id=1235
/viewthread.jsp?id=1236

重写后,可以用

/viewthread/1234.htm
/viewthread/1235.htm
/viewthread/1236.htm

我目前使用Tomcat+Apache,尝试过三种重写的方法

一、Tomcat的过滤器
最典型的就是用 urlReweite的类库。大家爱如果有经验,自己写也不是很麻烦。

修改web.xml增加过滤器,然后配置个过滤的规则就可以了
web.xml修改部分

<!-- Set URL Rewrite-->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
过滤规则

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
"http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
<urlrewrite>
<rule>
<from>/viewthread/(\d+).htm$</from>
<to>/viewthread.jsp?id=$1</to>
</rule>
</urlrewrite>
更多详情,请参考 http://www.java2000.net/p7782

二、使用Apache的mod


# 去掉这个前面的#,启用它
LoadModule rewrite_module modules/mod_rewrite.so


<VirtualHost _default_:80>
# 其它的配置数据


RewriteEngine On
# 下面三行实现动态解析
RewriteRule ^/viewthread/(\d+).htm$ /viewthread.jsp?id=$1 [L,PT]


</VirtualHost>
详细参考这里: http://www.java2000.net/p5422

三、使用系统的404错误进行
也就是页面没找到的错误

这个我就不写了,有兴趣的自己参考吧 http://www.java2000.net/p903



总结
第一种修改麻烦,但对于平稳运行的系统,是个不错的选择
第二种需要配置Apache,但 Apache的重启速度很快,适合于有可能经常变得情况,而且Apache Mod的效率还是不错的
第三种,最灵活,我一般简单的应用都是用这个实现的。

分享到:
评论

相关推荐

    URL重写概念和例子[借鉴].pdf

    简单来说,URL重写就是将用户输入的原始URL转换为另一种形式,以便服务器能够正确处理请求,同时保持URL对用户和搜索引擎友好。这一过程能够改善用户体验,提升网站的专业形象,并有助于搜索引擎更好地理解和索引...

    伪静态URL重写技术

    URL重写是通过服务器端的配置,如Apache的`.htaccess`文件或IIS的URL重写模块,来实现URL的转换。当客户端请求一个伪静态URL时,服务器会根据预先定义的规则将其解析为实际的动态URL,执行相应的程序并返回结果。...

    urlrewrite简单例子

    "urlrewrite"是一个非常实用的工具,它基于Apache服务器的URL重写模块,可以帮助开发者轻松实现动态URL到静态URL的转换。本篇文章将深入探讨如何使用urlrewrite实现动态页面静态化,并通过具体的例子来阐述这一过程...

    java servlet 最简单的小例子

    在这个"java servlet 最简单的小例子"中,我们将深入理解Servlet的基本概念和实现步骤,特别适合初学者入门学习。 1. **Servlet生命周期** - **加载与实例化**:当第一个请求到达Servlet时,服务器会加载Servlet类...

    在ASP.NET中实现Url Rewriting (三)

    BeginRequest事件是最早触发的,这使得URL重写可以在其他内嵌模块运行前完成,确保不会影响到后续的身份验证和授权过程。例如,如果在AuthenticateRequest事件中执行URL重写,可能会导致身份验证模块无法正确识别...

    前端开源库-connect-url-rewrite

    "connect-url-rewrite" 就是一个这样的工具,它是一个基于Connect或Express的中间件,专门用于处理URL重写。这个库的核心功能是允许开发者使用正则表达式来实现与Apache服务器的mod_rewrite模块类似的功能,对HTTP...

    最简单的servlet

    这个过程展示了如何创建和配置一个最简单的Servlet,使得用户可以通过浏览器进行URL访问。在实际开发中,Servlet可以处理复杂的业务逻辑,比如数据库交互、文件上传下载等。理解Servlet的工作原理对于深入学习Java ...

    20211210tomcat2.zip Servlet简单例子

    在本示例中,“20211210tomcat2.zip”包含了一个简单的Servlet应用,这对于初学者理解Servlet的工作原理及其在Tomcat服务器上的部署流程非常有帮助。 首先,我们需要了解Servlet生命周期的三个主要阶段:加载、初始...

    使用servlet的简单服务器demo

    在我们的例子中,服务器启动时会加载Servlet,然后初始化,接着处理来自用户的请求,最后当服务器关闭或Servlet不再需要时会被销毁。 2. **GET与POST请求**:HTTP协议中的两种主要请求方法。GET用于获取资源,其...

    tomcat-servlet-ajax最基础例子

    这个基础例子展示了如何在Tomcat服务器上使用Servlet和Ajax进行简单交互。虽然对于已经熟悉Ajax的开发者来说,这可能过于基础,但对于初学者来说,这是一个很好的起点,帮助他们理解这两个技术是如何协同工作的。...

    UrlRewriter

    在这个例子中,`$1`表示`pattern`中的括号内捕获的内容,这在URL重写时会被保留。 UrlRewriter还支持正则表达式,使得规则的编写更加灵活。你可以根据需求创建复杂的规则来处理各种URL模式。 学习UrlRewriter时,...

    servlet入门小例子

    Servlet通过重写`doGet()`或`doPost()`方法来处理这些请求。在这个例子中,可能是通过`doPost()`方法,因为表单通常使用POST方法提交数据。 4. **表单数据传递** 表单数据通常以键值对的形式存在于请求参数中。在...

    Android与servlet服务器交互

    在IT行业中,Android和Servlet之间的交互是移动应用开发中常见的技术组合。Android是谷歌推出的开源移动操作系统,广泛用于智能手机和平板...通过实践这个简单的例子,新手可以更好地理解这两个关键技术的协作方式。

    URL和URI使用指南

    - **构造函数**:`URL` 类提供了多个构造函数,其中最简单的形式是通过传入一个字符串形式的绝对URL: ```java public URL(String url) throws MalformedURLException ``` - **参数验证**:构造函数会验证传入的...

    android通过http上传文件到服务器

    以下是一个简单的Servlet处理文件上传的例子: 1. **配置Servlet** 在web.xml中配置Servlet,指定请求映射路径和Servlet类。 2. **重写doPost方法** 在Servlet类中,重写`doPost(HttpServletRequest request, ...

    完整版Java JSP web开发教程 03_会话跟踪简介(共22页).ppt

    以下是一个简单的Java Servlet示例,演示了URL重写和Cookie的使用: ```java response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); out.println("&lt;html&gt;"); out.println("&lt;head&gt;&lt;title...

    Servlet入门的例子

    本教程将引导初学者进入Servlet的世界,通过一个简单的入门例子来理解其基本概念和工作流程。 1. **Servlet简介** Servlet是Java API的一部分,允许开发者创建动态Web应用。它是一个Java类,继承自`javax.servlet....

    nginx服务器

    4. **URL重写**:通过配置Nginx,可以实现URL的重写规则,优化SEO,隐藏真实路径。 5. **缓存功能**:Nginx可以缓存静态资源,减少对后端服务器的压力。 6. **模块化设计**:Nginx支持模块化结构,可以按需添加或...

    简单servlet程序

    简而言之,"简单servlet程序"这个例子展示了Servlet的基础使用,通过创建一个Servlet类并重写`doGet()`方法来处理HTTP GET请求,然后在`web.xml`中配置Servlet,最后在服务器上运行并访问以查看结果。这个基础的步骤...

Global site tag (gtag.js) - Google Analytics