Понадобилось сделать склейку сайта который находится под управлением Tomcat 6, поэтому стандартный способ через mod_rewrite в .htaccess не работает. Поковырял гуглю на предмет 301 redirect и Tomcat .
Нужен фильтр UrlRewriteFilter http://tuckey.org/urlrewri te/ так как Tomcat не умеет сам делать редирект. Там же доходчиво описано как его ставить
- Можно просто кинуть .jar в папку WEB-INF/lib вашего проекта или добавить в зависимости Maven
- В WEB-INF/web.xml добавляем следующие строчки (желательно вверху вначале секций <filter>) :
<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>
- В папке WEB-INF создаем файлик urlrewrite.xml следующего содержания :
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd"> <!-- Configuration file for UrlRewriteFilter http://www.tuckey.org/urlrewrite/ --> <urlrewrite> <rule> <name>redirect</name> <condition name="host" operator="equal">^exampledomain\.com</condition> <from>^/(.*)</from> <to type="permanent-redirect" last="true">http://newexampledomain.com/$1</to> </rule> </urlrewrite>
После рестарта Tomcat, редирект должен нормально функционировать.