0

Resin (3.0.27) 是否可以将欢迎文件映射到 Servlet?

我在 Caucho 文档中找不到任何说明不支持此功能的内容。您的帮助将不胜感激。

<servlet-mapping>
    <servlet-name>td</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>

<welcome-file-list>
    <welcome-file>index.htm</welcome-file>
</welcome-file-list>

编辑:如果从我的帖子中看不出来,则上述内容不起作用。:)

编辑:如果我将 index.htm 放在文件系统中,则 servlet 映射有效。就好像 Resin 找不到物理文件时终止请求一样。

4

1 回答 1

1

由于 caucho_module 加载其配置的方式,它很可能会忽略欢迎文件。欢迎文件映射由 servlet 容器(例如,在您的情况下为 Resin)完成。但是 caucho_module 似乎正在寻找一个存在的显式映射,以帮助它决定什么去和什么不去 Resin,以及 Apache 将尝试为自己服务什么。

也许这是 caucho_module 中的一个错误,它不考虑欢迎文件处理?

如果这是真的,那么您可以解决此问题的一种笨方法是将 Apache 的 mod_rewrite 用于您希望映射到“欢迎文件”的 URL。确实,尝试这样做很可能会证明这一点。例如,类似:

RewriteEngine on
RewriteRule ^/your/url/$  /your/url/index.htm [R=permanent,L]

您可能想尝试以最后一个斜杠结尾和不以斜杠结尾的 URL 版本……我对 mod_rewrite 不够熟悉,不知道这是否会有所作为。无论如何,这将告诉 Apache 告诉客户端重定向(重新加载页面到)以您的欢迎页面结尾的 URL。如果这种事情解决了问题,那么 IMO 这是 cacho_module 中的一个错误。

作为测试的另一件事是直接进入 Resin——通常在端口 8888 上——绕过 Apache HTTP 以查看是否正确处理直接进入 Resin 的欢迎页面。

于 2009-05-27T03:42:31.507 回答