如何在 Glassfish v3 服务器中集成 URL 重写?
我想知道这一点的原因是我正在使用 Quercus 将 PHP 应用程序部署到我的 Glassfish 服务器中。
但是 Quercus 依赖于mod_rewrite
Apache 服务器来提供 URL 重写,而这在 Glassfish 中不可用。
如何在 Glassfish v3 服务器中集成 URL 重写?
我想知道这一点的原因是我正在使用 Quercus 将 PHP 应用程序部署到我的 Glassfish 服务器中。
但是 Quercus 依赖于mod_rewrite
Apache 服务器来提供 URL 重写,而这在 Glassfish 中不可用。
好吧,你有两个选择:
我想前者不是一个选择(或者你不会发布这个问题)。关于后者,您可以使用 Url Rewrite Filter 调整 Drupal on Glassfish 中给出的解决方案,并使用干净的 url。基本上,您必须:
WEB-INF/lib
和urlrewrite.xml
下面WEB-INF
)web.xml
(参见说明)urlrewrite.xml
文件中几个星期以来,我一直在寻找这个问题的答案。遵循 JBoss 的这些说明:http: //tapomay.blogspot.com/2011/11/clean-urls-with-drupal-urlrewritefilter.html
他链接到一篇为 Tomcat 完成此操作的文章:http ://www.brianshowalter.com/blog/running_drupal_on_quercus
简而言之,只有当系统上不存在所请求的文件或目录时,您才想重写 URL。这就是为什么仅仅 UrlRewriteFilter 是不够的。您必须向 UrlRewriteFilter 添加一个类过滤器来检查这一点。
我链接到的说明使用旧版本的 UrlRewriteFilter (3.2.0),它可能与新版本一样好用(我用 3.2.0 做的)。
您将与类过滤器一起使用它(有一个谷歌项目存储库,感谢链接文章的作者,位于https://code.google.com/p/drupalrewritefilter/)
说明说要将文件添加到 Eclipse,但我使用了 Netbeans(只需使用现有源启动一个新项目)。
您需要将 servlet.api.jar(系统上的某个位置,如果您安装了 J2EE)和您正在使用的 UrleRewriteFilter.jar 文件添加到构建的类路径中。
将生成的drupalrewritefilter.jar
文件和UrlRewriteFilter.jar
您正在使用的文件放在 WEB-INF/lib
你的 WEB-INF/web.xml 应该有这个过滤器指令:
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>TRACE</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
使用这个而不是 UrlRewriteFilter 网站说要使用的那个。
注意: Quercus 安装在 Servlet API 2.2 或 2.3 的开头包含一个 DOCTYPE 标记。但该<filter>
标签在 Servlet API 2.4 或更高版本中。除非您链接到新的服务器 API DTD 或(这就是我所做的)只是一起删除 DOCTYPE 标记,否则您的应用程序将出错。
然后你应该有一个 WEB-INF/urlwrite.xml :
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<class-rule class="com.brianshowalter.drupalrewrite.DrupalRule" />
</urlrewrite>
重新加载您的 drupal 应用程序,然后启用干净的 URLS