We're about to start migrating projects from our Jira Server to Jira Cloud. Since this is going to be a gradual process, I want to configure our Apache front-end with redirect rules to handle the projects that have been moved.
I wrote a similar script for Confluence (linaro-its/confluence-space-redirects (github.com)) but Jira looks like a bigger challenge.
I'm therefore trying to come up with the different types of URL that Jira uses in order to then create the appropriate redirects.
So far, I've got:
I know that some of the URLs are also specific to plugins like Structure.
Anyone got any other useful URLs that I need to try to capture?
@Philip Colmer I would suggest making the issues read-only in the projects that have been moved. Then if you miss anything the users would know as they can not do anything on those issues. You would then be able to update your redirect list.
Hi @Philip Colmer —I'm facing a similar situation: one of our open source projects has asked about URL redirects from their existing Server instance to the cloud. (The project has been using Jira for 13 years and they want to be sure all of the links scattered around mailing list archives, documentation notes, and elsewhere are still valid.) Did you find a solution?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Peter Murray I'm sorry but I didn't. I did come up with a set of rules that worked for a test project (see below) but I couldn't be sure that it was 100% complete partly because of how plugins on Jira can add to the variety of routes into what you can see on a project.
Another issue for me, compared with Confluence, was the challenge of dealing with partial migrations. The challenge here was that we were migrating projects individually so that there was an opportunity to clean up a bit before moving on to the next project. The problem is that Jira often handles mouse clicks *within the browser*. In other words, you click on a URL but the browser doesn't go off to the server to request that URL. Instead, Jira "hijacks" the click, figures out where you are going and takes you there straight away. That problem means that redirect rules at the web server level didn't always get actioned because the request didn't get to the server. Of course, if you've completed the migration, that isn't an issue.
Sorry I can't be of more help.
RewriteCond "%{QUERY_STRING}" "^rapidView=252&projectKey=ITS&view=reporting&chart=controlChart&useStoredSettings=true" RewriteRule "^/secure/RapidBoard\.jspa" "https://linaro.atlassian.net/projects/ITS?selectedItem=com.atlassian.jira.jira-projects-plugin:repo rt-page" [R=301,END] RewriteCond "%{QUERY_STRING}" "^projectKey=ITS&rapidView=252&view=(planning|planning.nodetail)$" RewriteRule "^/secure/RapidBoard\.jspa" "https://linaro.atlassian.net/secure/RapidBoard.jspa?projectKey=ITS&rapidView=21&view=planning.nodet ail" [R=301,END] RewriteCond "%{QUERY_STRING}" "^projectKey=ITS&rapidView=252$" RewriteRule "^/secure/RapidBoard\.jspa" "https://linaro.atlassian.net/secure/RapidBoard.jspa?projectKey=ITS&rapidView=21" [R=301,END] RewriteCond "%{QUERY_STRING}" "^rapidView=252&projectKey=ITS&view=(planning|planning.nodetail)(&issueLimit=100)?$" RewriteRule "^/secure/RapidBoard\.jspa" "https://linaro.atlassian.net/secure/RapidBoard.jspa?projectKey=ITS&rapidView=21&view=planning.nodet ail%2" [R=301,END] RewriteCond "%{QUERY_STRING}" "^rapidView=252&projectKey=ITS(&selectedIssue=ITS-[0-9]*)?$" RewriteRule "^/secure/RapidBoard\.jspa" "https://linaro.atlassian.net/secure/RapidBoard.jspa?projectKey=ITS&rapidView=21%1" [R=301,END] RewriteCond "%{QUERY_STRING}" "^rapidView=252(&view=planning.nodetail&issueLimit=100)$" RewriteRule "^/secure/RapidBoard\.jspa" "https://linaro.atlassian.net/secure/RapidBoard.jspa?projectKey=ITS&rapidView=21%1" [R=301,END] RewriteCond "%{QUERY_STRING}" "^rapidView=252(&selectedIssue=ITS-[0-9]*)?$" RewriteRule "^/secure/RapidBoard\.jspa" "https://linaro.atlassian.net/secure/RapidBoard.jspa?projectKey=ITS&rapidView=21%1" [R=301,END] RewriteRule "^/browse/ITS(-[0-9]+)?$" "https://linaro.atlassian.net/browse/ITS$1" [R=301,END] # https://projects.linaro.org/projects/ITS/issues/ITS-1723?filter=allopenissues RewriteCond "%{QUERY_STRING}" "^(.+)$" RewriteRule "^/projects/ITS/issues/ITS(-[0-9]+)$" "https://linaro.atlassian.net/projects/ITS/issues/ITS$1?%1" [R=301,END] RewriteRule "^/projects/ITS/issues$" "https://linaro.atlassian.net/projects/ITS/issues?" [R=301,END] RewriteCond "%{QUERY_STRING}" "^(.+)$" RewriteRule "/projects/ITS" "https://linaro.atlassian.net/projects/ITS?%1" [R=301,END]
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Argh! Okay, thanks for the advice and insights. Fortunately, I have just one Jira project to move, so that simplifies my life a little bit.
Much appreciated, @Philip Colmer
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.