Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,499,190
Community Members
 
Community Events
179
Community Groups

Redirecting from Server to Cloud - which URLs to handle?

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:

  • Individual issues. /browse/<issue reference>
  • All issues in a project. /projects/<project key>/issues/<issue reference>
  • Project configuration. /projects/<project key>?<something>
  • Backlog. /secure/RapidBoard.jspa?rapidView=<board ref>&view=planning.nodetail
  • Kanban. As for backlog but without the view specified

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?

 

1 answer

0 votes
Brant Schroeder Community Leader May 19, 2021

@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?

@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]
Like Peter Murray likes this

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

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
SERVER
TAGS
AUG Leaders

Atlassian Community Events