使用Quercus的PHP重写Glassfish上的URL

时间:2010-07-09 19:01:17

标签: url-rewriting glassfish quercus question2answer

我有Glassfish 3服务器并添加了Quercus 4.0.7以便能够在其上运行PHP应用程序。一切都与它完美配合。现在我正在尝试在我的服务器上运行Question2Answer应用程序。我能够打开应用程序,但它不允许我在页面之间导航,因为他们使用.htaccess文件来重写URL。我想知道在这种情况下我们如何重写URL?

这是Question2Answer的.htaccess里面的内容:

DirectoryIndex index.php
RewriteEngine On
#RewriteBase /your-sub-directory
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?qa-rewrite=$0&%{QUERY_STRING} [L]

你有什么解决方案吗?

1 个答案:

答案 0 :(得分:3)

使用Tuckey的UrlRewriteFilter(灵感来自mod_rewrite并提供类似的功能)来实现重写规则。基本上,你必须:

  • 获取Quercus的战争并打开包装
  • 下载the filter并将其解压缩到Quercus中(这会将过滤器jar放在WEB-INF/lib内,将urlrewrite.xml放在WEB-INF下。
  • web.xml中声明过滤器(请参阅install instructions)。
  • 将您的重写规则“移植”到urlrewrite.xml文件。
  • 重新包装并部署战争(或将其部署为爆炸档案)。

帖子Drupal on Glassfish with clean urls using Url Rewrite Filter讨论了这种方法。根据您的需求进行调整。