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

Url rewriting 在Struts中重定向到子域时,永久重定向不起作用,url-rewriting,struts,tuckey-urlrewrite-filter,Url Rewriting,Struts,Tuckey Urlrewrite Filter,对于seo和重定向旧页面,我们需要将旧的移动站点页面重定向到新的子域。但这不适用于常见的重定向规则,即 <rule> <from>/m/</from> <to type="permanent-redirect">http://m.website.com</to> </rule> 被重定向到 http://m.website.com http://website.com/module/http://m.w

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

<rule>
    <from>/m/</from> 
    <to type="permanent-redirect">http://m.website.com</to>
</rule>
被重定向到

http://m.website.com
http://website.com/module/http://m.website.com/
在这样做之后,我们面临着一个奇怪的问题。那是

http://website.com/module/m/
被重定向到

http://m.website.com
http://website.com/module/http://m.website.com/
预期的是,它也应该像以前一样重定向。 是什么导致了这个问题


jfi,我们的web应用程序是使用UrlRewriteFilter的struts。

深入研究之后,我终于知道UrlRewriteFilter实际上是通过替换匹配的正则表达式模式,在头位置的值中设置根目录的相对路径,以响应请求的路径,如上所述。 可见,

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

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