In short, linking to a specific Confluence page version is not possible by simply copy pasting an existing link, but it needs some manual URL editing. Here’s how to do it.
EDIT: Finally Atlassian added this feature by changing the page links on page history. Unfortunately this is only valid for the cloud version, or versions 5.x onwards, whereas most hosted installs still don’t offer this option, this simply isn’t possible on version 4.x.
It’s pretty obvious I’m not the biggest supporter of confluence as the enterprise knowledge management platform, but denying it grabbed the largest chunk of this market would be denying the reality, which in fact is the case on my current company…
Complex stuff like adding semantic annotations on data, or performing any kind of data querying is simply impossible, which is kinda expectable, but simple things like templating or linking to a specific page version are also not natively supported, or requires a third party add-on (99% of the times, paid) , or it simply cannot be done.
Linking to a specific page version is something which is as painfully useful as hard to do, due to the weird way Confluence works.
Before going strait to the solution, let’s just describe the problem: Confluence, as any other basic documentation management system, supports page versioning, as the following screen exemplifies.
On Confluence version 4.x or below, the link of each version has the following structure:
Now, the funny (or tragic) thing is, even if you directly link from another page to that link, you won’t obtain the actual version you’ve linked, but instead the last available version.
So in order to link to a specific page version we need to add one additional parameter to the query string manually: &pageVersion=versionNumber.
So on the previous example, the link for each of the pervious versions would be as follows:
v. 1 – https://yourconfluencehostname/path/pages/viewpage.action?pageId=1234567890&pageVersion=1
v. 2 – https://yourconfluencehostname/path/pages/viewpage.action?pageId=1234567890&pageVersion=2
So there you have it.
The weird thing is, the pageVersion parameter is exactly the same as used on v5.x versions on the page version page, so I really find hard to imagine why it wasn’t done like that on the first place…