88

Using tomcat, how do I get a request for http://www.mydomain.example to redirect to http://www.mydomain.example/somethingelse/index.jsp? I haven't even managed to get an index.html to display from http://mydomain.example.

Stephen Ostermiller
  • 23,933
  • 14
  • 88
  • 109
Nathaniel Flath
  • 15,477
  • 19
  • 69
  • 94

6 Answers6

123

You can do this: If your tomcat installation is default and you have not done any changes, then the default war will be ROOT.war. Thus whenever you will call http://yourserver.example.com/, it will call the index.html or index.jsp of your default WAR file. Make the following changes in your webapp/ROOT folder for redirecting requests to http://yourserver.example.com/somewhere/else:

  1. Open webapp/ROOT/WEB-INF/web.xml, remove any servlet mapping with path /index.html or /index.jsp, and save.

  2. Remove webapp/ROOT/index.html, if it exists.

  3. Create the file webapp/ROOT/index.jsp with this line of content:

    <% response.sendRedirect("/some/where"); %>
    

    or if you want to direct to a different server,

    <% response.sendRedirect("http://otherserver.example.com/some/where"); %>
    

That's it.

reinierpost
  • 8,425
  • 1
  • 38
  • 70
Viral Patel
  • 8,506
  • 3
  • 32
  • 29
26

Name your webapp WAR “ROOT.war” or containing folder “ROOT”

flybywire
  • 261,858
  • 191
  • 397
  • 503
  • 2
    This approach causes a lot of problems when working on local and then deploying your application to multiple servers. Specially if you have multiple projects going to be deployed on different servers, and each can be ROOT on their own servers. – zookastos Aug 20 '19 at 15:49
19

Take a look at UrlRewriteFilter which is essentially a java-based implementation of Apache's mod_rewrite.

You'll need to extract it into ROOT folder under your Tomcat's webapps folder; you can then configure redirects to any other context within its WEB-INF/urlrewrite.xml configuration file.

ChssPly76
  • 99,456
  • 24
  • 206
  • 195
  • UrlRewriteFilter is fast and worked well for me. [the manual](http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html) has some great options and [this blog post](http://nematodes.org/martin/2010/02/04/301-permanent-redirect-with-tomcat-howto/) also has some good info. – cwd May 02 '13 at 23:05
14

Tested and Working procedure:

Goto the file path ..\apache-tomcat-7.0.x\webapps\ROOT\index.jsp

remove the whole content or declare the below lines of code at the top of the index.jsp

<% response.sendRedirect("http://yourRedirectionURL"); %>

Please note that in jsp file you need to start the above line with <% and end with %>

Frankstar
  • 306
  • 1
  • 3
  • 10
obaid
  • 892
  • 11
  • 25
9

What i did:

I added the following line inside of ROOT/index.jsp

 <meta http-equiv="refresh" content="0;url=/somethingelse/index.jsp"/>
Kevin
  • 451
  • 6
  • 13
5

In Tomcat 8 you can also use the rewrite-valve

RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^/(.*)$         /somethingelse/index.jsp

To setup the rewrite-valve look here:

http://tonyjunkes.com/blog/a-brief-look-at-the-rewrite-valve-in-tomcat-8/

progressdll
  • 374
  • 3
  • 12