您好,匿名用户
随意问技术百科期待您的加入

关于URL 重写如何实现的问题

0 投票

关于URL重写,Apache上的URL Rewriting Guide是一个该功能的介绍,全是英文的,看着费劲,大伙谁能通俗易懂的说说怎么实现我的网站的URL重置功能,或者给个中文的参考说明也可。

项目是建立在J2EE的一个JSP网站。

开发工具是Eclipse

用户头像 提问 2012年 12月1日 @ Hepheastus 上等兵 (182 威望)
分享到:

1个回答

0 投票
 
最佳答案

我用的开发框架是Struts2,使用urlrewrite的步骤是先引入相关的包,
然后在web.xml中使用如下配置.

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<!-- 这是UrlRewrite的配置 -->
        <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>
        <!--结束-->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.FilterDispatcher
		</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
                <!--重要-->
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
	</filter-mapping>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

下面是urlrewrite.xml配置。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
        "http://tuckey.org/res/dtds/urlrewrite3.2.dtd">

<!--

    Configuration file for UrlRewriteFilter
    http://tuckey.org/urlrewrite/

-->
<urlrewrite>
   <!--以index为例-->
    <rule>
        <from>/index</from><!-- 地址栏里会显示http://localhost:8080/工程名/index -->
        <to>/index.action</to><!-- 实际调用的是index.action -->
    </rule>
    <rule>
        <from>/admin</from>
        <to>/blog/admin.jsp</to><!--实际访问的为admin.jsp-->
    </rule>
    <!--网址中有变量的时候-->
    <rule>
        <from>/index/([\s\S]*)$</from><!--以$代替变量,变量支持正则表达式-->
        <to>/index.action?param=$1</to><!--用$1调用变量-->
    </rule>
    <!--网址中有多个变量的时候-->
    <rule>
        <from>/essay/([\s\S]*)/([\s\S]*)$</from><!--多个变量用‘/’分割-->
        <to>/main.action?date=$1&id=$2</to><!--变量与变量之间用‘&’连接,重要-->
    </rule>
    <!--以下不用管-->
    <outbound-rule>
        <from>/rewrite-status</from>
        <to>/test/status/</to>
    </outbound-rule>

</urlrewrite>

希望对你有帮助.

用户头像 回复 2012年 12月1日 @ Sion 上等兵 (319 威望)
选中 2012年 12月1日 @Hepheastus
提一个问题:

相关问题

0 投票
1 回复 36 阅读
用户头像 提问 2014年 2月17日 @ Nero 上等兵 (377 威望)
0 投票
1 回复 51 阅读
用户头像 提问 2012年 12月1日 @ Emiya Shirou 上等兵 (438 威望)
0 投票
1 回复 31 阅读
0 投票
1 回复 28 阅读
0 投票
1 回复 37 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...