【问题标题】:URL rewrite in tomcat web.xml在 tomcat web.xml 中重写 URL
【发布时间】:2011-10-01 16:12:48
【问题描述】:

我想自动将http://example.com 的请求重定向到http://example.com/SomePage

我可以通过以下规则使用 Apache 做到这一点:

RewriteRule ^/$ /SomePage [R]

但是,我的一些服务器不运行在 Apache 之上,只运行在 Tomcat 之上。如何在 web.xml 中实现等价物? SomePage 是一个 struts2 动作。

【问题讨论】:

    标签: jsp tomcat servlets url-rewriting friendly-url


    【解决方案1】:

    如果您单独使用 Tomcat 而不是使用带有 modrewrite 的 Apache,最好的方法是安装一个重写过滤器并从您的 web.xml 中引用它。我过去使用的一个过滤器是来自 tuckey.org (http://www.tukey.org/) 的 UrlRewriteFilter。

    它在 Google 代码上http://code.google.com/p/urlrewritefilter/source/browse/trunk/src/test-web/WEB-INF/urlrewrite.xml

    上次更新是在 2010 年 10 月,但我记得它运行良好。配置文件是 XMLish,而不是你在 modrewrite 中使用的那种漂亮的衬里。

    【讨论】:

    • 我尽量避免这种情况。我可以编写自己的 servlet 来进行重定向,我也试图避免这种情况。
    • 对不起,我不认为有任何本地 Tomcat 的 URL 重写解决方案。我想你会发现 UrlRewrite 易于使用。也许其他人有其他解决方案?
    • 为什么不使用重定向到您的第一个 struts 操作的索引页面,将索引页面放在您的 war 文件中并在您的 web.xml 中创建一个welcome 部分。这是一次服务器往返,但使用标准 servlet API 功能很容易实现
    • @home 好点,这绝对适用于仅使用 servlet API 重定向欢迎页面。猜猜我在想一个更通用的解决方案。 +1
    【解决方案2】:

    我只会在 web.xml 中使用<welcome-file-list>。例如

    <welcome-file-list>    
      <welcome-file>SomePage.html</welcome-file>
    </welcome-file-list>
    

    【讨论】:

    • "SomePage 是一个 struts2 动作。" - 不是静态的.html 文件,所以这不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 2015-10-02
    • 1970-01-01
    • 2014-11-10
    • 2010-12-06
    • 2016-04-09
    • 2021-10-11
    相关资源
    最近更新 更多