I have a rule like the following where I am trying to replace instances of 
/spf/ with /ec/apps/symmetry/spf/.   I’ve used sub_filter to do this sort of 
thing before and had luck with it.

        location /ec/apps/symmetry/ {

            proxy_pass 
http://stl-biz-d2-hrxsymmetry.devapp.c9.equifax.com:55943/;
            proxy_redirect / https://$host/ec/apps/symmetry/;

            #sub filter doesn't work if the upstream server returns compressed 
or zipped content.
            proxy_set_header Accept-Encoding identity;

            sub_filter once off;  # doesn’t seem to have an effect

            sub_filter '/spf/' '/ec/apps/symmetry/spf/';

            add_header X-nginx-rule /ec/apps/symmetry;
        }

The thing I am seeing here is that even though I specified sub_filter_once off 
I still only see the first link modified in the html that comes back.   When 
this html is returned


<html>
<head>
     <title> Welcome </title>


     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta name="robots" content="noindex,nofollow"/>
     <script type="text/javascript" 
src="/spf/resources/js/jquery.js?v=spf_2017-R5"></script>
     <script type="text/javascript" 
src="/spf/resources/js/bootstrap.js?v=spf_2017-R5"></script>
     <script type="text/javascript" 
src="/spf/resources/js/underscore.js?v=spf_2017-R5"></script>
     <script type="text/javascript" 
src="/spf/resources/js/beautify-html.js?v=spf_2017-R5"></script>
     <script type="text/javascript" 
src="/spf/resources/js/jquery-zoom.js?v=spf_2017-R5"></script>
     <script type="text/javascript" 
src="/spf/resources/js/spf-new-all.js?v=spf_2017-R5"></script>
     <link href="/spf/resources/css/bootstrap.css?v=spf_2017-R5" 
type="text/css" media="all" rel="stylesheet">
     <link href="/spf/resources/css/main.css?v=spf_2017-R5" type="text/css" 
media="all" rel="stylesheet">



This is what I see coming out of nginx:

<html>
<head>
     <title> Welcome </title>


     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta name="robots" content="noindex,nofollow"/>
     <script type="text/javascript" 
src="/ec/apps/symmetry/spf/resources/js/jquery.js?v=spf_2017-R5"></script>
     <script type="text/javascript" 
src="/spf/resources/js/bootstrap.js?v=spf_2017-R5"></script>
     <script type="text/javascript" 
src="/spf/resources/js/underscore.js?v=spf_2017-R5"></script>
     <script type="text/javascript" 
src="/spf/resources/js/beautify-html.js?v=spf_2017-R5"></script>
     <script type="text/javascript" 
src="/spf/resources/js/jquery-zoom.js?v=spf_2017-R5"></script>
     <script type="text/javascript" 
src="/spf/resources/js/spf-new-all.js?v=spf_2017-R5"></script>
     <link href="/spf/resources/css/bootstrap.css?v=spf_2017-R5" 
type="text/css" media="all" rel="stylesheet">
     <link href="/spf/resources/css/main.css?v=spf_2017-R5" type="text/css" 
media="all" rel="stylesheet">



 I can see that “X-nginx-rule” header show up in the browser confirming that 
the request traversing this location block. The fact that anything is modified 
tells me that gzip and content-type are not getting in the way. sub_filter is 
filtering, it’s just only doing it one time ☺.


I was able to work around this by just accepting /spf/ in another location 
block but for future reference – has anyone seen sub_filter only make one 
substitution even when sub_filter once off is specified?


Jason Whittington | Architect, PD Shared Services
[cid:[email protected]]

WORKFORCE
SOLUTIONS

(o) 314.214.7163 | (m) 636.284.4082
[email protected]<mailto:[email protected]>

This message contains proprietary information from Equifax which may be 
confidential. If you are not an intended recipient, please refrain from any 
disclosure, copying, distribution or use of this information and note that such 
actions are prohibited. If you have received this transmission in error, please 
notify by e-mail [email protected]. Equifax® is a registered trademark of 
Equifax Inc. All rights reserved.
_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to