我正在使用http://tuckey.org/urlrewrite/要创建我的网站 map ,目前我有很多链接,我无法手动编写所有规则,例如:
<rule>
<from>^/about-us$</from>
<to type="redirect">/myWeb/Controller?page=ForwardAbout</to>
</rule>
Tuckey 在 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
来更新规则,是否可以应用规则而不需要重新 -再次部署网络应用程序?
最佳答案
在大多数应用程序服务器上,您无法动态更改 Web 应用程序内的任何内容,除非重新打包并重新部署应用程序。
即使您可以更改文件,例如在未打包的 war 中,tuckey 可能仍只会读取该文件一次,并且除非重新启动应用程序,否则不会采用新规则。
为什么不制定一个更动态的规则来匹配所有请求?在重写规则中,您可以使用反向引用,例如'$1' 将匹配括号之间的第一个正则表达式,例如:
<rule>
<from>^/about-(.*)$</from>
<to type="redirect">/myWeb/Controller?page=Forward$1</to>
</rule>
关于java - 在 WEB-INF 中创建 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29929959/