Is it possible to configure the Netlify reverse proxy to overwrite a 301 response from origin ?
I know that it’s a bit crazy… but here we are.
I have this redirect rule.
[[redirects]]
from = "/documentation/*"
to = "https://yeovil.sftpplus.com/documentation/:splat"
status = 200
force = true
The issue is that an URL like Documentation Start Page | SFTPPlus Documentation is configured on the origin server to redirect to Documentation Start Page | SFTPPlus Documentation
The netlify reverse proxy works … but end up with users getting outside of the main domain.
I am trying to deploy a single domain - multi repo site.
The main site is in one repo and the documentation (with all versions) in another repo
For now I am just testing a migration…so the documentation is still hosted on the my VPS server.
For example I have these URLs
I am expecting both of them to return the same content.
The actual result is that the second URL without a trailing slash ends up with a redirection to the origin server and not with a reverse proxy.
Thanks!
Hi @adiroiban,
That’s actually expected behaviour. Netlify’s rewrites will return the response headers sent by the destination content. In your case, the response is returning 301 with location header:
Thus, it’s redirecting accordingly.
I think you could use placeholders to always rewrite to the URL with the trailing slash. For example like this:
[[redirects]]
from = "/documentation/:page"
to = "https://yeovil.sftpplus.com/documentation/:page/"
status = 200
force = true
Thanks a lot.
Well, there are hundred of pages… but I am not sure how :page
can be used.
I could not find it documented here Redirect options | Netlify Docs
The plan is to host the documentation in a separate Netlify repo, with each version of the documentation deployed in a separate branch.
There is https://dev.sftpplus.com/documentation/sftpplus/v/4.14.0/ and https://dev.sftpplus.com/documentation/sftpplus/v/4.13.0/ and so on
I don’t want visitor to be redirected to something like https://v4.13.0--sftpplus-docs.netlify.app/
That’s a placeholder, just like *
is for match all. :page
in the above example would match everything till the next /
. For example, in this URL: www.foo.com/bar/
, :page
would match bar
.
It’s documented in the placeholder section in the link you posted.