Fix redirects including URL fragments #1424
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What was the end-user problem that led to this PR?
The problem was that some pages include links to URLs with a fragment, and without a
v2.x/
url segment, and the fragment is actually lost when clicking the link. See for example the https://bundler.io/man/gemfile.5.html#PLATFORMS link in https://bundler.io/guides/using_bundler_in_applications.html#gemfilelock.What was your diagnosis of the problem?
My diagnosis was that middleman uses client side redirects to implement redirections, so pages like https://bundler.io/man/gemfile.5.html actually serve the following content, with a 200 status:
That means requesting a client side redirect (without the fragment).
What is your fix for the problem, implemented in this PR?
My fix is to actually serve the same content as
v2.6/man/gemfile.5.html
, by making everything inv2.6/man/
a symlink toman/
. We will serve duplicated content, but our canonical meta tags should hint crawlers about what the canonical page is.Why did you choose this fix out of the possible options?
I chose this fix because it fixes #1347, and it may also help with SEO issues like #1333.