Hello! On Sun, Jun 04, 2023 at 12:26:55AM +1000, Jore wrote:
> Hi all, > > I have an app on a domain that is set by a developer to proxy at certain > URLs: > > |example.com/browser/123foo0/stuff.js | > > for example, where |123foo0| is some random key. The key may also change > length in future. > > That’s all fine. > > But I’d like to interrupt specific requests and not proxy them: I don’t > want to serve anything after the key that is in the path |/welcome| for > example, i.e. not proxy any of these: > > |example.com/browser/123foo0/welcome/welcome.html > example.com/browser/foo456b/welcome/welcome.css > example.com/browser/bar123f/welcome/welcome.js > example.com/browser/456foob/welcome/other.stuff > example.com/browser/foo789b/welcome/ | > > So I tried simple stuff first like: |location ^~ > /browser/.*/welcome/welcome.html {...| > but couldn’t even get that working, before moving on to try capturing > groups like css files and scripts and so on. > > I also tried putting regex in quotes, but that didn’t seem to work either. > > What am I doing wrong? > > Here’s a truncated version of the conf, with the location blocks only: > > |location ^~ "/browser/.*/welcome/welcome.html" { return 200 'Not > proxied.\n'; add_header Content-Type text/plain; } location ^~ /browser > { proxy_pass http://127.0.0.1:1234; proxy_set_header Host $http_host; } > # landing page location / { root /var/www/foobar; index index.html; > try_files $uri $uri/ /index.html; } | The "^~" location modifier is for prefix-match locations to prevent further checking of regular expressions, see http://nginx.org/r/location for details. If you want to use a regular expression, you have to use the "~" modifier instead. That is, proper configuration will look like: location ~ ^/browser/.*/welcome/welcome.html$ { # URI matches given regular expression ... } location /browser/ { # URI starts with /browser/ ... } location / { # anything else ... } Hope this helps. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx mailing list nginx@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx