【问题标题】:Apache Server RewriteRule to Tomcat WARApache Server RewriteRule 到 Tomcat WAR
【发布时间】:2014-06-26 03:50:33
【问题描述】:

我正在尝试让 Apache 的 RewriteEngine 将一些 URL 重写为 Tomcat Webapp 目录。 它已经部分起作用了,但有一件事我无法实现。

这是场景:

我有 apache 和一个在 vps 上运行的 tomcat。 在 tomcat 上,我有一个名为 XYZ 的 webapp。 在 Apache 上,我使用带有 workers.properties 的 jk_mod 模块来“连接”到 tomcat。 在我的 httpd.conf 中,我有一个 VitualHost 设置如下:

<VirtualHost *:80>
   ServerName abc.domain.com
   RewriteEngine on
   RewriteRule ^/(.+)$ /XYZ/$1 [L,PT]
   JkMount /* XYZ
</VirtualHost>

到目前为止,一切都很好。如果没有 RewriteRule,我将不得不像这样打开 URL:

abc.domain.com/XYZ/home (where "home" is the jsp)
abc.domain.com/XYZ/customers
etc...

而我的重写规则是这样的:

abc.domain.com/home
abc.domain.com/customers
etc...

这对我的目标来说已经很不错了,但还需要做一件事:我希望能够打开 abc.domain.com 并重定向到上面的最后一个示例(home jsp)。

我尝试添加一些其他 RewriteRules 将根重写为 /XYZ/home 并且还尝试了 Redirect,但这些都没有像我预期的那样工作(没有发生任何事情)...

有人可以解释一下,我怎样才能做到这一点?

非常感谢您!

【问题讨论】:

    标签: apache .htaccess tomcat mod-rewrite war


    【解决方案1】:

    我终于让它工作了。使用第二个 RewriteRule。我猜我之前的尝试中我的通配符/正则表达式有一些错误。

    这是有效的:

    <VirtualHost *:80>
      ServerName abc.domain.com
      RewriteEngine on
      RewriteRule ^/(.+)$ /XYZ/$1 [L,PT]
      RewriteRule ^/$ /XYZ/home [L,PT]   # <---- This 
      JkMount /* XYZ
    </VirtualHost>
    

    在我的研究过程中,我还了解到Redirect 301 / /home 基本上会重定向所有内容,而不仅仅是根目录,就像需要它那样。

    【讨论】:

      【解决方案2】:

      将 Redirect 放在 RewriteEngine 子句之上。

      类似:

      <VirtualHost *:80>
         ServerName abc.domain.com
         Redirect 301 ^/$ /home
         RewriteEngine on
         RewriteRule ^/(.+)$ /XYZ/$1 [L,PT]
         JkMount /* XYZ
      </VirtualHost>
      

      【讨论】:

      • 感谢 Rijndael 的快速回答!不幸的是,这效果不太好......通过这种方法,我得到了一个重定向循环,并且 URL 看起来有点像这样:abc.domain.com/homeXYZ/homeXYZ/homeXYZ/homeXYZ..... 我会进一步调查,也许我会自己找到原因.
      • 我用 RewriteRule 写了一个答案,它可以满足我的需要。
      • 我的错,应该是 Redirect 301 ^/$ /home
      猜你喜欢
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 2016-04-04
      • 2015-03-10
      • 2018-12-05
      相关资源
      最近更新 更多