One of the best examples of what you need is in the ambari UI config in github.
https://github.com/apache/knox/blob/master/gateway-service-definitions/src/main/resources/services/ambariui/2.2.0/rewrite.xml https://github.com/apache/knox/blob/master/gateway-service-definitions/src/main/resources/services/ambariui/2.2.0/service.xml Match on the whole string and then apply the gateway path. Assuming that a leading slash won’t break things (it usually is neutral or even helps), then you can do something like this: <rule dir="OUT" name="LOGSEARCH/logsearch/schema_fields/outbound" pattern="static/schema_fields.json"> <rewrite template="{$frontend[path]}/logsearch/static/schema_fields.json"/> </rule> That’s the most basic way. You may want to limit this to your javascript portion. If you do, you’ll need to add a filter and then add that filter to the service.xml. The most helpful docs for me were: http://kminder.github.io/knox/2015/11/16/adding-a-service-to-knox.html https://cwiki.apache.org/confluence/display/KNOX/2017/08/14/Understanding+Rewrite+Rules+for+Apache+Knox https://cwiki.apache.org/confluence/display/KNOX/Proxying+a+UI+using+Knox Billy Watson From: David Morin <[email protected]> Reply-To: "[email protected]" <[email protected]> Date: Monday, July 30, 2018 at 5:47 PM To: "[email protected]" <[email protected]> Subject: need help for a rewrite rule Hello, I've got this url: https://knox.XXXX/gateway/default/logsearch/scripts/collections/SchemaFieldList.js?ver=build.version that contains this: return Backbone.Collection.extend({ model: SchemaField, url: 'static/schema_fields.json' }); And I'd like to replace by: return Backbone.Collection.extend({ model: SchemaField, url: 'logsearch/static/schema_fields.json' }); because at the moment, I've got a 404. The url called by the browser is this one: https://knox.XXXX/gateway/default/static/schema_fields.json What is the best way to handle this rewriting ? Thanks in advance David
