我需要使用Tomcat 6将http://www.example.com/foo/bar/moo的请求重写为http://www.example.com/foo@bar@moo。
原因是,应用程序JIRA将多个包含的javascripts批处理到一个batch.js中,并且不允许使用子路径。但javascripts本身动态地从这些子路径加载资源。我不想改变这些javascripts,所以我可以在必要时轻松升级javascripts。
无法禁用批处理,因此我希望将请求转换为具有/替换为不同分隔符的请求(这些URL不会自然地出现在这些URL中)。 在JIRA中,我已经将资源重命名(映射)为新名称。
现在对于tomcat我想到了urlrewrite
:
<urlrewrite>
<rule enabled="true">
<condition type="request-uri" operator="equal">^/foo/.*</condition>
<from>/</from>
<to type="permanent-redirect">...</to>
</rule>
<urlrewrite>
但是如果可能的话,不知道如何指定<to/>
。
如果不能这样做,我还有其他可能性吗?
答案 0 :(得分:0)
假设只有有限数量n的可能斜杠,解决方法是将规则乘以n次。
<rule enabled="true">
<condition type="request-url" operator="equal">/(jira)/(dojo|dojox|dijit)/([^/]+)$</condition>
<from>^/(dojo|dojox|dijit)/([^/]+)$</from>
<to type="redirect">/%1/%2@%3</to>
</rule>
<rule enabled="true">
<condition type="request-url" operator="equal">/(jira)/(dojo|dojox|dijit)/([^/]+)/([^/]+)$</condition>
<from>^/(dojo|dojox|dijit)/([^/]+)/([^/]+)$</from>
<to type="redirect">/%1/%2@%3@%4</to>
</rule>
P.S。:原始问题实际上不是问题,因为所有重定向都必须使用batch.js,因此您只需要1条规则来解决JIRA问题。