2013-05-31 1 views
0

Для seo и перенаправления старых страниц нам необходимо перенаправить наши старые страницы мобильных сайтов на новый поддомен. Но это не работает с общим правилом переадресации, которыйПерманентный переадресация не работает при перенаправлении на субдомен в Struts

<rule> 
    <from>/m/</from> 
    <to type="permanent-redirect">http://m.website.com</to> 
</rule> 

это работает большую часть времени, как ожидается, как

http://website.com/m/ 

перенаправляется

http://m.website.com 

После этого, мы столкнулись с какой-то странной проблемой. Который

http://website.com/module/m/ 

перенаправляется

http://website.com/module/http://m.website.com/ 

Ожидаемое является то, что он также должен быть перенаправлен, как ранее. Что вызывает проблема?

jfi, наше веб-приложение имеет распорки с использованием UrlRewriteFilter.

ответ

1

После того, как я углубился, я наконец узнал, что urlrewritefilter фактически устанавливает относительный путь к корневому каталогу в значении местоположения заголовка в ответ на запрошенный путь, заменяя только соответствующий шаблон регулярного выражения, как упоминалось выше. Это можно увидеть here

Поэтому браузер фактически интерпретирует это как относительный путь к текущему домену и дает ошибку 404.

Это можно решить, используя настраиваемое действие перенаправления для обработки такого типа запроса.