문제

A Spring app I'm using declares a Tuckey UrlReWrite Filter and then sets up a rewrite rule as the following:

<rule>
    <from>^/(.*)$</from>
    <to last="true">/app/$1</to>
</rule>

Why do this?

Will Spring not be able to recognize requests that do not go to the /app/ url?

Otherwise what is the advantage of this redirect?

도움이 되었습니까?

해결책

Imagine that you want Spring MVC's DispatcherServlet to handle all URLs in your application excluding the URLs of static content. If you try to do it directly with <url-pattern>/</url-pattern>, this mapping will take precedence over the static content.

With rewrite filter you can specify exclusions for the static content, like this:

<urlrewrite default-match-type="wildcard">
    <rule>
        <from>/staticContentHere/**</from>
        <to>/staticContentHere/$1</to>
    </rule>
    <rule>
        <from>/**</from>
        <to>/app/$1</to>
    </rule>    
</urlrewrite>

EDIT: Note that since Spring 3.0.4 there is a <mvc:resources /> declaration. With this declaration, DispatcherServlet will serve static content from the /resources subfolder of your webapp, so rewriting will not be needed (see http://blog.springsource.com/2010/07/22/spring-mvc-3-showcase/).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top