I think the best way to do this going forward would be to use a custom header as defined in the REST API guidelines site https://restfulapi.net/versioning/. This allows constant URIs, and removes the burden of hacking together an Accept string.
Proposed solution:
New headers
Accept-Version: Target API version
Deprecation: Header to warn the user that the endpoint has been deprecated since version N. This allows a more natural period of degredation. While not yet official, this header is WIP from ietf https://tools.ietf.org/html/draft-dalal-deprecation-header-00
Using custom code, we can keep old functionality in some working state going forward, detecting on Accept-Version and passing a Deprecation header to inform the user/endpoint.