【问题标题】:creating XML file inside WEB-INF在 WEB-INF 中创建 XML 文件
【发布时间】:2015-04-28 21:08:00
【问题描述】:

我正在使用http://tuckey.org/urlrewrite/创建我的网站地图,目前我有很多链接,我无法手动编写所有规则,例如:

<rule>
   <from>^/about-us$</from>
   <to type="redirect">/myWeb/Controller?page=ForwardAbout</to>
</rule>

Tukey 在 WEB-INF 文件夹中使用了一个名为 urlrewrite.xml 的文件。

重定向规则可能来自数据库,例如:每当创建文章时,向所需链接插入一行,例如:

/about-potatoes

规则会变成这样

<rule>
   <from>^/about-us$</from>
   <to type="redirect">/myWeb/Controller?page=ForwardPotatoes</to>
</rule>

然后应该写入urlrewrite.xml,以便重定向到新文章。

主要问题是:如何在 WEB-INF 中创建 urlrewrite.xml

第二个问题:假设每周都有新文章,每周创建这个urlrewrite.xml来更新规则,规则是否可以应用而无需再次重新部署网络应用程序?

【问题讨论】:

    标签: java jsp jakarta-ee servlets


    【解决方案1】:

    在大多数应用程序服务器上,您无法动态更改 Web 应用程序内部的任何内容,除非您重新打包并重新部署应用程序。

    即使您可以更改文件,例如在 unpacked war 中,tuckey 可能仍然只读取文件一次,并且除非您重新启动应用程序,否则不会获取新规则。

    为什么不制定一个更动态的规则来匹配所有请求?在重写规则中,您可以使用反向引用,例如'$1​​' 将匹配括号中的第一个正则表达式,例如:

    <rule>
       <from>^/about-(.*)$</from>
       <to type="redirect">/myWeb/Controller?page=Forward$1</to>
    </rule>
    

    【讨论】:

    • 我也想过这个问题,但问题是正则表达式并不总是匹配 page=Forward 上的参数,我认为最简单的方法是强制它们匹配,谢谢
    猜你喜欢
    • 2018-08-22
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    相关资源
    最近更新 更多