`

urlrewrite 路径重写

阅读更多
web.xml 配置:

<filter>
			<filter-name>UrlRewriteFilter</filter-name>
			<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
			
			<init-param>
	            <param-name>confReloadCheckInterval</param-name>
	            <param-value>30</param-value>
        	</init-param>
        	
			<init-param>
	            <param-name>logLevel</param-name>
	            <param-value>WARN</param-value>
        	</init-param>
   
            <init-param>
	            <param-name>statusEnabled</param-name>
	            <param-value>true</param-value>
        	</init-param>
        	
        	<init-param>
	            <param-name>statusPath</param-name>
	            <param-value>/status</param-value>
        	</init-param>
        	  
        	<init-param>
	            <param-name>confPath</param-name>
	            <param-value>/WEB-INF/classes/urlrewrite.xml
	            </param-value>
        	</init-param>
	</filter>

urlrewrite.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite SYSTEM "../resources/urlrewrite3.2.dtd" >
<urlrewrite>
 		<rule>   
		        <note>   
		            	无参数匹配  
		        </note>   
		        <from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+)$</from>   
		        <to type="forward">/$1.do</to>   
		     
	    </rule>
	    
 		<rule>   
 				<note>
 					将所有.jsp文件映射为.html
 				</note>
		        <from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+).html$</from>   
		        <to type="forward">/$1.jsp</to>   
	    </rule>
	    
    <!--
	    <outbound-rule>
		        <note>
		            The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url)
		            the url /rewrite-status will be rewritten to /test/status/.
		
		            The above rule and this outbound-rule means that end users should never see the
		            url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks
		            in your pages.
		        </note>
		        <from>/rewrite-status</from>
		        <to>/test/status/</to>
    	</outbound-rule>



     EXAMPLES

     Redirect one url
        <rule>
            <from>/some/old/page.html</from>
            <to type="redirect">/very/new/page.html</to>
        </rule>

    Redirect a directory
        <rule>
            <from>/some/olddir/(.*)</from>
            <to type="redirect">/very/newdir/$1</to>
        </rule>

    Clean a url
        <rule>
            <from>/products/([0-9]+)</from>
            <to>/products/index.jsp?product_id=$1</to>
        </rule>
    eg, /products/1234 will be passed on to /products/index.jsp?product_id=1234 without the user noticing.

    Browser detection
        <rule>
            <condition name="user-agent">Mozilla/[1-4]</condition>
            <from>/some/page.html</from>
            <to>/some/page-for-old-browsers.html</to>
        </rule>
    eg, will pass the request for /some/page.html on to /some/page-for-old-browsers.html only for older
    browsers whose user agent srtings match Mozilla/1, Mozilla/2, Mozilla/3 or Mozilla/4.

    Centralised browser detection
        <rule>
            <condition name="user-agent">Mozilla/[1-4]</condition>
            <set type="request" name="browser">moz</set>
        </rule>
    eg, all requests will be checked against the condition and if matched
    request.setAttribute("browser", "moz") will be called.

    -->
	    
</urlrewrite>

 

分享到:
评论
1 楼 sqz10200 2011-07-15  

相关推荐

Global site tag (gtag.js) - Google Analytics