Hello! I'm using nginx 1.12.2 on RHEL 7, and I've got a FastCGI web app that uses a deployment structure which uses an atomic symlink change for an atomic app deploy, and I'm wishing to be able to do an internal redirect in nginx to URL x, but deny an external request to the same URL x so that I don't serve the same content at more than one URL. Is there a way to do that?
For example, given the external request URI /my-app/index.html I want to do an internal redirect to /my-app/current/index.html but deny an external request for that same URI /my-app/current/index.html because I don't want to serve the app from two different URLs (e.g., /my-app/ and /my-app/current/). The app structure on disk is like the Capistrano structure https://capistranorb.com/documentation/getting-started/structure/ That is, it's like /srv/www/my-app current -> releases/1.0.2 releases 1.0.0 1.0.1 1.0.2 "current" is a symlink. In my nginx config, I've changed $document_root to $realpath_root in the appropriate FastCGI parameters, and have the following locations: location /my-app/ { rewrite ^/my-app/(?!current/)(.*)$ /my-app/current/$1 last; index index.php; } location /my-app/current/ { return 404; } location /my-app/releases/ { return 404; } location ~ ^/my-app/.*?[^/]\.php(?:/|$) { include php-fpm-realpath.conf; } Given an external request for a URI that starts with /my-app/ this returns 404 after the internal redirect. If I remove the two locations that return 404, then it serves the app, but it also allows external requests such as /my-app/current/ which I don't want to allow since that's a duplicate of /my-app/ I initially tried using the alias directive which I thought was a better fit for what I wanted to do location /my-app/ { alias /srv/www/my-app/current/; index index.php; } location /my-app/current/ { return 404; } location /my-app/releases/ { return 404; } location ~ ^/my-app/(.*?[^/]\.php(?:/.*|$)) { alias /srv/www/my-app/current/$1; include php-fpm-realpath.conf; } But that didn't seem to work with the nginx FastCGI implementation. Thank you! Lewis _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx