rewrite rule help.
Igor Sysoev
igor at sysoev.ru
Fri Apr 1 10:22:11 MSD 2011
On Fri, Apr 01, 2011 at 05:01:42AM +0200, Steve Zhuo wrote:
> 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>
location ^~ / {
rewrite ^ http://www.example.com/en$request_uri permanent;
}
location ^~ /en {
proxy_pass http://www.example.com;
}
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list