urlrewrite 匹配规则之优先选择

urlrewrite rule可以使用java的正则表达式匹配规则,但是这里存在一个问题点,假如有一个通配的规则和一个精确匹配的规则,urlrewrite 会选择那个去匹配呢?


如下两种规则:

<from>^/ajax/(\w+)(.html)$</from>

			<to type="forward">/ajax/$1.action</to>



			<from>^/(\w+)/(\w+)(.html)$</from>

			<to type="forward">/$1-$2.action</to>

 

 


urlrewrite.xml文件

 

	<!--Warning 警告:在urlrewrite尽量少的使用通配的规则;

		由于它匹配到一个就不再匹配第二个了,所以即便是有更加精确的匹配,

		如果写在通用的匹配规则之后,还是无法匹配的,这是个问题点。望君注意!

		eg: <from>^/ajax/(\w+)(.html)$</from>

			<to type="forward">/ajax/$1.action</to>



			<from>^/(\w+)/(\w+)(.html)$</from>

			<to type="forward">/$1-$2.action</to>

			

			如上两种规则:如果请求路径是http://localhost:8080/IcMarket/ajax/login.html

			显然这两种规则都能匹配:出现的情况就是,这两种规则谁在上面,就现匹配谁的规则;urlrewrite这东西不会像

			struts2 一样精确的找到最佳匹配的规则,它只要找到一个能够匹配的就不再往下寻找;为了防止你的规则被杂乱无章的匹配,

			尽量控制好自己想要匹配的原则。

	-->

	

	

 

 

 

你可能感兴趣的:(urlrewrite)