Where to put robots.txt in tomcat 7?

apache, java, robots.txt, sitemap, tomcat

Solution

It should be in your context directory

`mywebapp\MyApplication`

just where you will have your web-inf directory,index.html etc.

UPDATE:

As per our discussion all urls are handled by Spring MVC DelegatingFilterProxy , so you need to exclude *.txt from this filter somehow, may be by extending DelegatingFilterProxy and configuring that filter in web.xml

SOLUTION: I can server static content through this hack in Spring MVC:

<mvc:resources mapping="/robots.txt" location="/robots.txt" order="0"/>

Saved me a ton of headache. :) Writing it for anyone else to benefit from.

Problem

I'm using Tomcat 7 to host my application. I've used a ROOT.xml file under tomcat-home\conf\Catalina\localhost ``` <Context docBase="C:\Program Files\Apache Software Foundation\Tomcat 7.0\mywebapp\MyApplication" path="" reloadable="true" /> ``` This is to load my webapp in the root context. But now I'm confused as to where to put the `robots.txt` and `sitemap.xml` files. When I put in under C:\Program Files\Apache Software Foundation\Tomcat 7.0\mywebapp\MyApplication, it doesn't show up. I've also tried placing it inside `C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT` , just in case. But nothing works. I'm still getting 404 not found. Can anyone please guide. p.s. My web application runs fine. It's just that my `robots.txt` file is unreachable. EDIT My web.xml file: ``` <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy </filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ```

Original source

Related problems