rewrite rule help.

Steve Zhuo lists at ruby-forum.com
Fri Apr 1 07:01:42 MSD 2011


hi

i'm running nginx with tomcat.  I tried to rewrite all the incoming url
with /en appended. ex: www.example.com/main/index.html will get rewrite
to www.example.com/en/main/index.html

Following is my nginx config:


upstream www.example.com   {
        server localhost:8080;
}

 location ^~ / {
            index  index.html index.htm;
            rewrite ^ http://www.example.com/en$request_uri break;
        }

 location ^~ /en {
            index  index.html index.htm;
            proxy_pass      http://www.example.com/;
        }

When i just do www.example.com/main/index.html, it rewrites to the new
url and page shows.  But when i tried to write an url without .htm or
.html extension, the browser complains about page not found and return
404. such as "www.example.com/main/new"  I got the 404 error on my
Tomcat log.  Before this rewrite rule, the page can be loaded without
any problem.

here is my tomcat config:

<servlet-mapping>
<servlet-name>dir</servlet-name>
<url-pattern>*.htm</url-pattern>
<url-pattern>/en/*</url-pattern>
</servlet-mapping>
<error-page>
<error-code>404</error-code>
<location>/errors/503.htm</location>
</error-page>


any help is apprecaite.


Thank You

Steve Zhuo

-- 
Posted via http://www.ruby-forum.com/.



More information about the nginx mailing list