永久重定向在重定向到Struts中的子域时不起作用

时间:2013-05-31 10:18:35

标签: url-rewriting struts tuckey-urlrewrite-filter

对于seo和重定向旧页面,我们需要将旧的移动网站页面重定向到新的子域名。但这不适用于常见的重定向规则

<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的struts。

1 个答案:

答案 0 :(得分:1)

深入了解之后,我终于知道urlrewritefilter实际上是在标题位置的值中设置根目录的相对路径以响应请求的路径,只需替换匹配的正则表达式模式,如上所述。 这可以看作here

因此,浏览器实际将此解释为当前域的相对路径,并给出404错误。

这可以使用自定义重定向操作来解决,以处理此类请求。