Advertisement
pixeline

Untitled

Jun 14th, 2023
1,015
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 29.59 KB | Source Code | 0 0
  1. # frozen_string_literal: true
  2.  
  3. # URLS in css files are relative to the wordpress path. We need to redirect them to the correct path.
  4. # Redirect requests from /{lang}/app/themes/apptweak-theme/* to /assets/*
  5. get("/app/themes/apptweak-theme/*") { redirect "/assets/" + params[:splat].first, 301 }
  6. get("/app/plugins/*") { redirect "/assets/" + params[:splat].first, 301 }
  7.  
  8. ################################
  9. # legacy url redirections
  10. ################################
  11.  
  12. get("/aso-experts/:slug") { redirect "/aso-experts", 301 }
  13. get("/aso-experts") { redirect "/#{I18n.locale}/aso-mobile-growth-consulting-services", 301 }
  14. get("/free-tools/top-bidding-apps") { redirect "/", 301 }
  15. get("/free-tools/hints") { redirect "/#{I18n.locale}/free-tools", 301 }
  16. get("/aso-tools/app-analytics") { redirect "/#{I18n.locale}/aso-tools/app-store-analytics", 301 }
  17.  
  18. # Redirects former "free-aso-tools" routes to new "free-tools" routes
  19. get("/free-tools/top-charts") { redirect "/#{I18n.locale}/free-tools/app-store-top-charts", 301 }
  20. get("/free-aso-tools") { redirect "/#{I18n.locale}/free-tools", 301 }
  21. get("/free-aso-tools/:slug") { redirect "/#{I18n.locale}/free-tools/#{params[:slug]}", 301 }
  22.  
  23. # We used to have job offers pages on apptweak but we moved them to recruitee
  24. # which is served on jobs.apptweak.com
  25. get("/jobs") { redirect "https://jobs.apptweak.com/", 301 }
  26. get("/jobs/:slug") { redirect "https://jobs.apptweak.com/", 301 }
  27.  
  28. # Mobile App News redirections
  29. %w(
  30.   /mobile-app-news/feed
  31.   /mobile-app-news/feed.xml
  32.   /mobile-app-news/atom).each do |blog_slug|
  33.   get(blog_slug) { redirect "/en/mobile-app-news/atom.xml", 301 }
  34. end
  35.  
  36. %w(
  37.   /aso-blog/top-5-2018-mobile-games-that-have-already-reached-10m-downloads
  38.   /mobile-app-news/most-popular-apps-games
  39.   /aso-blog/most-popular-apps-games
  40. ).each do |blog_slug|
  41.   get("#{blog_slug}") { redirect "/en/mobile-app-news/most-popular-new-game-launches", 301 }
  42. end
  43.  
  44. get("/mobile-app-news/category/*") { redirect "/en/mobile-app-news", 301 }
  45.  
  46.  
  47. get ("/amp/mobile-app-news/:slug") { redirect "/en/mobile-app-news/#{params[:slug]}", 302 }
  48.  
  49. # search top charts
  50. # We used to offer url-based top charts but this feature was deprecated in favor
  51. # of the free top chart aso tool. So we perform a redirect for those URLs
  52. get("/app-ranking-charts-top-400/:country/ios/:category") { redirect "/#{I18n.locale}/free-tools/app-store-top-charts", 301 }
  53. get("/app-ranking-charts-top-400/:country/ios/ipad/:category") { redirect "/#{I18n.locale}/free-tools/app-store-top-charts", 301 }
  54. get("/ranking-charts-top-400/:country/google-play-store/:category") { redirect "/#{I18n.locale}/free-tools/app-store-top-charts", 301 }
  55.  
  56.  
  57. # ------------------------------------------------------------
  58. # Ad Intelligence
  59. get("/ad-intelligence") { redirect "/#{I18n.locale}/aso-tools/ad-intelligence", 301 }
  60.  
  61. get("/aso-resources/japan-mobile-game-market-2021") { redirect "/#{I18n.locale}/aso-resources/japan-mobile-game-market-2022", 301 }
  62.  
  63. # "Aso intel" becomes "Aso tools" (December 2022)
  64. get("/aso-intelligence") { redirect "/#{I18n.locale}/aso-tools", 301 }
  65. get("/aso-intelligence/keyword-research-suggestions") { redirect "/#{I18n.locale}/aso-tools/keyword-research-suggestions", 301 }
  66. get("/aso-intelligence/keyword-tracking-monitoring") { redirect "/#{I18n.locale}/aso-tools/keyword-tracking-monitoring", 301 }
  67. get("/aso-intelligence/app-competition-monitoring") { redirect "/#{I18n.locale}/aso-tools/app-competition-monitoring", 301 }
  68. get("/aso-intelligence/ratings-reviews") { redirect "/#{I18n.locale}/aso-tools/app-store-ratings-reviews", 301 }
  69. get("/aso-tools/ratings-reviews") { redirect "/#{I18n.locale}/aso-tools/app-store-ratings-reviews", 301 }
  70. get("/aso-intelligence/app-analytics") { redirect "/#{I18n.locale}/aso-tools/app-store-analytics", 301 }
  71. get("/aso-intelligence/aso-keyword-master") { redirect "/#{I18n.locale}/aso-tools/aso-keyword-master", 301 }
  72. get("/aso-intelligence/featured-apps") { redirect "/#{I18n.locale}/aso-tools/featured-apps", 301 }
  73. get("/aso-intelligence/similar-apps") { redirect "/#{I18n.locale}/aso-tools/similar-apps", 301 }
  74. get("/aso-intelligence/installs-per-keyword") { redirect "/#{I18n.locale}/aso-tools/keyword-research-suggestions", 301 }
  75. get("/aso-tools/installs-per-keyword") { redirect "/#{I18n.locale}/aso-tools/keyword-research-suggestions", 301 }
  76. get("/aso-intelligence/app-category-ranking") { redirect "/#{I18n.locale}/aso-tools/app-store-analytics", 301 }
  77. get("/aso-intelligence/aso-timeline-history") { redirect "/#{I18n.locale}/aso-tools/aso-timeline-history", 301 }
  78. get("/aso-intelligence/download-and-revenue-estimates") { redirect "/#{I18n.locale}/aso-tools/download-and-revenue-estimates", 301 }
  79. get("/aso-tools/all-ranked-keywords-performance") { redirect "/#{I18n.locale}/aso-tools/aso-keyword-master", 301 }
  80. get("/all-features") { redirect "/#{I18n.locale}/pricing", 301 }
  81. get("/about") { redirect "/#{I18n.locale}/about/who-we-are", 301 }
  82. get("/who-we-are") { redirect "/#{I18n.locale}/about/who-we-are", 301 }
  83. get("/partners") { redirect "/#{I18n.locale}/about/partners", 301 }
  84. get("/about/our-story") { redirect "/#{I18n.locale}/", 301 }
  85. get("/review-management") { redirect "/#{I18n.locale}/app-store-reviews", 301 }
  86. get("/aso-tools/app-store-ratings-reviews") { redirect "/#{I18n.locale}/app-store-reviews", 301 }
  87. get("/case-studies/moburst") {  redirect "/en/case-studies/moburst-shopkick", 301 }
  88. # get("/case-studies/coincheck") {  redirect "/en/case-studies", 301 }
  89. get("/site-plan") { redirect "/#{I18n.locale}/sitemap", 301 }
  90. get("/aso-intelligence/top-charts") { redirect "/#{I18n.locale}/market-intelligence/top-charts", 301 }
  91. get("/aso-intelligence/keyword-research") { redirect "/#{I18n.locale}/aso-tools/keyword-research-suggestions", 301 }
  92. get("/features/aso/app-store-optimization-report") { redirect "/#{I18n.locale}/aso-tools/aso-keyword-master", 301 }
  93. get("/features/mobile-app-marketing") { redirect "/#{I18n.locale}/aso-tools", 301 }
  94. get("/features/reviews-and-ratings") { redirect "/#{I18n.locale}/aso-tools/ratings-reviews", 301 }
  95. get("/features/mobile-app-analytics") { redirect "/#{I18n.locale}/aso-tools/app-store-analytics", 301 }
  96. get("/features/aso-report") { redirect "/#{I18n.locale}/aso-tools/aso-keyword-master", 301 }
  97. get("/aso-intelligence/aso-keyword-report") { redirect "/#{I18n.locale}/aso-tools/aso-keyword-master", 301 }
  98. get("/features/aso-intelligence/aso-keyword-report") { redirect "/#{I18n.locale}/aso-tools/aso-keyword-master", 301 }
  99. get("/search-ads-intelligence") { redirect "/#{I18n.locale}/ad-intelligence", 301 }
  100. get("/features/keyword-tool/ad-intelligence") { redirect "/#{I18n.locale}/ad-intelligence", 301 }
  101. get("/features/keyword-tool/monitoring") { redirect "/#{I18n.locale}/aso-tools/keyword-tracking-monitoring", 301 }
  102. get("/features/keyword-tool/picking") { redirect "/#{I18n.locale}/aso-tools/keyword-research-suggestions", 301 }
  103. get("/features/keyword-tool/analysis") { redirect "/#{I18n.locale}/aso-tools/keyword-tracking-monitoring", 301 }
  104. get("/about/client-testimonials") { redirect "/#{I18n.locale}/case-studies", 301 }
  105. get("/customer-testimonials") { redirect "/#{I18n.locale}/case-studies", 301 }
  106. get("/features") { redirect "/#{I18n.locale}/pricing", 301 }
  107. get("/features/aso") { redirect "/#{I18n.locale}/aso-tools", 301 }
  108. get("/features/aso/app-store-optimization-report") { redirect "/#{I18n.locale}/aso-tools/aso-reporting", 301 }
  109. get("/features/aso/category-ranking") { redirect "/#{I18n.locale}/aso-tools/app-category-ranking", 301 }
  110. get("/features/aso/keyword-data") { redirect "/#{I18n.locale}/aso-tools/keyword-research-suggestions", 301 }
  111. get("/features/aso/keyword-monitoring") { redirect "/#{I18n.locale}/aso-tools/keyword-tracking-monitoring", 301 }
  112. get("/features/aso/keyword-research") { redirect "/#{I18n.locale}/aso-tools/keyword-research-suggestions", 301 }
  113. get("/features/aso/reviews-and-ratings") { redirect "/#{I18n.locale}/aso-tools/ratings-reviews", 301 }
  114. get("/features/business-intelligence") { redirect "/#{I18n.locale}/aso-tools/app-store-analytics", 301 }
  115. get("/features/business-intelligence/api") { redirect "/#{I18n.locale}/aso-tools/app-store-analytics", 301 }
  116. get("/features/business-intelligence/google-play-store-install-keywords") { redirect "/#{I18n.locale}/aso-tools/app-store-analytics", 301 }
  117. get("/features/business-intelligence/integrations") { redirect "/#{I18n.locale}/aso-tools/app-store-analytics", 301 }
  118. get("/features/market-intelligence") { redirect "/#{I18n.locale}/market-intelligence", 301 }
  119. get("/features/market-intelligence/download-and-revenue-estimates") { redirect "/#{I18n.locale}/aso-tools/download-and-revenue-estimates", 301 }
  120. get("/features/market-intelligence/market-share") { redirect "/#{I18n.locale}/market-intelligence/market-share", 301 }
  121. get("/features/market-intelligence/top-charts") { redirect "/#{I18n.locale}market-intelligence/top-charts", 301 }
  122. get("/features/search-ads-intelligence") { redirect "/#{I18n.locale}/search-ads-intelligence", 301 }
  123. get("/features/search-ads-intelligence/organic-keywords-protection") { redirect "/#{I18n.locale}/search-ads-intelligence", 301 }
  124. get("/features/search-ads-intelligence/paid-keywords") { redirect "/#{I18n.locale}/search-ads-intelligence", 301 }
  125. get("/features/search-ads-intelligence/share-of-voice-history") { redirect "/#{I18n.locale}/search-ads-intelligence", 301 }
  126. get("/about/why-choose-us") { redirect "/#{I18n.locale}/why-apptweak", 301 }
  127. get("/aso-resources/aso-webinars") { redirect "/#{I18n.locale}/aso-resources/webinars", 301 }
  128. get("/aso-resources/aso-vs-seo") { redirect "/en/aso-blog/aso-vs-seo-why-how-they-are-different", 301 }
  129. get("/aso-resources/what-is-aso") { redirect "/en/aso-resources/guides/aso-beginners-guide", 301 }
  130. # Landings Pages Ads
  131. get("/app-store-optimization-tool") { redirect "/#{I18n.locale}/", 301 }
  132. get("/app-store-keyword-research-tool") { redirect "/#{I18n.locale}/", 301 }
  133. get("/monitor-app-rankings-and-visibility") { redirect "/#{I18n.locale}/", 301 }
  134. get("/get-more-app-downloads") { redirect "/#{I18n.locale}/", 301 }
  135. get("/optimize-your-app-listing-page") { redirect "/#{I18n.locale}/", 301 }
  136. get("/aso-reporting-tool") { redirect "/#{I18n.locale}/", 301 }
  137. get("/monitor-app-competitors") { redirect "/#{I18n.locale}/", 301 }
  138. get("/app-market-intelligence") { redirect "/#{I18n.locale}/", 301 }
  139. get("/aso-for-mobile-games") { redirect "/#{I18n.locale}/", 301 }
  140. get("/apptweak-new-features") { redirect "/#{I18n.locale}/", 301 }
  141. get("/aso-game-studios") { redirect "/#{I18n.locale}/", 301 }
  142. # get '/slack-aso-report' do
  143. #   redirect '/#{I18n.locale}/', 301
  144. # end
  145.  
  146. get ("/aso-university") { redirect "/#{I18n.locale}/aso-blog", 301 }
  147. # Legals
  148. get ("/privacy") { redirect "/#{I18n.locale}/legal/privacy-policy", 301 }
  149. get ("/legal") { redirect "/#{I18n.locale}/legal/privacy-policy", 301 }
  150. get ("/terms") { redirect "/#{I18n.locale}/legal/terms-of-services", 301 }
  151. # Culture
  152. get ("/culture") { redirect "/#{I18n.locale}/who-we-are", 301 }
  153. get("/about/our-culture") { redirect "/#{I18n.locale}/who-we-are", 301 }
  154. get ("/culture/the-team/:slug") { redirect "/#{I18n.locale}/about/our-team", 301 }
  155. # ASO Resources / Guides
  156. get ("/aso-resources/guides") { redirect "/#{I18n.locale}/aso-resources", 301 }
  157.  
  158. #
  159. # BLOG REDIRECTIONS
  160. #
  161. get("/aso-blog/infographic-number-of-downloads-to-reach-top-rankings") { redirect "/en/aso-blog/number-of-downloads-to-reach-top-rankings", 301 }
  162. get("/aso-blog/5-steps-to-boost-app-downloads-with-localization") { redirect "/en/aso-blog/boost-app-downloads-with-localization-step-by-step-guide", 301 }
  163. get("/aso-blog/9-tips-to-optimize-your-app-screenshots") { redirect "/#{I18n.locale}/aso-blog/9-tips-to-optimize-your-app-screenshots-2", 301 }
  164. get("/aso-blog/the-most-popular-app-store-keywords-of-2019") { redirect "/en/aso-blog/the-most-popular-app-store-keywords", 301 }
  165. get("/aso-blog/introducting-download-and-revenue-estimates") { redirect "/en/aso-blog/introducing-worldwide-ios-download-and-revenue-estimates", 301 }
  166. get("/aso-blog/discover-our-worldwide-google-play-daily-download-estimates") { redirect "/en/aso-blog/introducing-worldwide-ios-download-and-revenue-estimates", 301 }
  167. get("/aso-blog/6-effective-aso-hacks-for-google-play-apps") { redirect "/en/aso-blog/5-aso-trends-for-2020-you-need-to-know-about", 301 }
  168. get("/aso-blog/games-sub-categories-now-in-app-icon-color-analysis-and-category-keywords") { redirect "/en/aso-blog/compare-your-app-metadata-to-category-benchmark-aso-trends", 301 }
  169. get("/aso-blog/how-did-black-friday-affect-top-shopping-apps-in-2019") { redirect "/en/aso-blog/impact-of-black-friday-on-shopping-apps", 301 }
  170. get("/aso-blog/how-featured-apps-boost-category-rankings-downloads") { redirect "/en/aso-blog/case-study-impact-of-featuring-on-app-installs-rankings-reviews", 301 }
  171. get("/aso-blog/monthly-downloads-per-keyword-now-in-new-markets") { redirect "/en/aso-blog/discover-the-number-of-app-installs-per-keyword", 301 }
  172. get("/aso-blog/new-advanced-analytics-features-now-live") { redirect "/en/aso-blog/analytics-2.0-a-new-way-to-monitor-app-performance", 301 }
  173. get("/aso-blog/analytics-2.0-a-new-way-to-monitor-app-performance") { redirect "/en/aso-blog/analytics-2-0-a-new-way-to-monitor-app-performance", 301 }
  174. get("/aso-blog/new-app-store-ios-11-why-aso-is-more-important-than-ever") { redirect "/en/aso-blog/ios-15-reveal-what-s-about-to-change-for-aso", 301 }
  175. get("/aso-blog/how-search-ads-can-boost-your-apps-organic-keyword-rankings-2") { redirect "/aso-blog/how-search-ads-can-boost-your-apps-organic-keyword-rankings", 301 }
  176. get("/aso-blog/A-simple-guide-to-your-ASO-first-steps") { redirect "/en/aso-blog/a-simple-guide-to-your-aso-first-steps", 301 }
  177. get("/aso-blog/Discover-the-most-used-keywords-per-app-category") { redirect "/en/aso-blog/discover-the-most-used-keywords-per-app-category", 301 }
  178. get("/aso-blog/How-to-build-your-Search-Ads-strategy-in-new-ASA-markets") { redirect "/en/aso-blog/how-to-build-your-search-ads-strategy-in-new-asa-markets", 301 }
  179. get("/aso-resources/aso-checklist-app-store") { redirect "/aso-resources/apple-app-store-aso-checklist", 301 }
  180. get("/aso-resources/aso-checklist-google-play-store") { redirect "/aso-resources/google-play-store-aso-checklist", 301 }
  181. get("/aso-blog/how-to-optimize-your-apps-long-description") { redirect "/en/aso-blog/app-store-description-best-practices", 301 }
  182.  
  183. %w(
  184.   /aso-blog/new-app-store-ios-11-why-aso-is-more-important-than-ever
  185.   /aso-blog/apple-s-ios-15-reveal-what-will-change-for-aso
  186. ).each do |blog_slug|
  187.   get "#{blog_slug}" do
  188.     redirect "/#{I18n.locale}/aso-blog/ios-15-reveal-what-s-about-to-change-for-aso", 301
  189.   end
  190. end
  191.  
  192. %w(
  193.   /aso-blog/apple-search-popularity-for-new-asa-markets-now-available-on-apptweak
  194.   /aso-blog/apptweak-adds-apple-search-popularity-for-uk-aus-and-nzl
  195. ).each do |blog_slug|
  196.   get "#{blog_slug}" do
  197.     redirect "/en/aso-blog/apple-exact-search-volume-now-on-apptweak", 301
  198.   end
  199. end
  200.  
  201. %w(
  202.   /aso-blog/the-ultimate-app-store-optimization-aso-cheat-sheet
  203.   /aso-blog/aso-the-ultimate-guide-to-boosting-your-app
  204.   /aso-blog/5-free-ways-to-boost-your-app-downloads
  205.   /aso-blog/9-quick-app-store-optimization-tips
  206.   /aso-blog/app-store-optimization-aso-app-name-and-keywords
  207.   /aso-blog/app-store-optimization-extreme-newbies
  208.   /aso-blog/4-tips-to-optimize-your-seo-app-strategy
  209.   /aso-blog/app-keywords-4-facts-need-know-increase-exposure
  210.   /aso-blog/app-store-optimization-tips-interview-with-olivier-verdin-apptweak-co-founder
  211.   /aso-blog/aso-is-the-new-seo
  212.   /aso-blog/app-title-4-effective-hacks-to-improve-your-app-store-visibility
  213.   /aso-blog/how-aso-can-help-you-get-cheaper-app-installs
  214.   /aso-blog/how-to-optimize-your-app-description-to-improve-discoverability
  215.   /aso-blog/beginners-guide-to-app-store-optimization
  216. ).each do |blog_slug|
  217.   get "#{blog_slug}" do
  218.     redirect "/#{I18n.locale}/aso-resources/guides/aso-beginners-guide", 301
  219.   end
  220. end
  221.  
  222. get("/aso-blog/increase-your-app-downloads-with-localization") { redirect "/en/aso-blog/boost-app-downloads-with-localization-step-by-step-guide", 301 }
  223. get("/aso-blog/apptweak-adds-apple-search-popularity-for-canada-mexico-and-switzerland") { redirect "/en/aso-blog/apple-search-popularity-for-new-asa-markets-now-available-on-apptweak", 301 }
  224. get("/aso-blog/aso-monitor-measure-track-repeat") { redirect "/en/aso-blog/why-how-to-monitor-competition-in-the-app-store-aso-blog", 301 }
  225. %w(
  226.   /aso-blog/5-tools-to-manage-your-users-reviews-and-ratings
  227.   /aso-blog/how-to-reply-to-user-reviews-in-the-app-store
  228.   /aso-blog/4-ways-to-benefit-from-negative-reviews
  229.   /aso-blog/the-ultimate-app-store-reviews-and-ratings-guide
  230. ).each do |blog_slug|
  231.   get "#{blog_slug}" do
  232.     redirect "/#{I18n.locale}/aso-blog/use-app-review-sentiment-analysis-to-make-product-decisions", 301
  233.   end
  234. end
  235.  
  236. get("/aso-blog/introducing-apptweak-aso-webinar-series") { redirect "/aso-resources/webinars", 301 }
  237. get("/aso-blog/norwegian-and-finnish-keywords-now-available") { redirect "/en/aso-blog/apple-search-popularity-for-new-asa-markets-now-available-on-apptweak", 301 }
  238. get("/aso-blog/welcome-apptweak-aso-university") { redirect "/aso-resources/webinars", 301 }
  239. get("/aso-blog/apple-ad-what-impact-on-app-store-optimization") { redirect "/en/aso-blog/how-ad-can-boost-your-apps-organic-keyword-rankings", 301 }
  240. get("/aso-blog/danish-and-swedish-keywords-now-available") { redirect "/en/aso-blog/apple-search-popularity-for-new-asa-markets-now-available-on-apptweak", 301 }
  241. get("/aso-blog/polish-and-indonesian-keywords-now-available") { redirect "/en/aso-blog/apple-search-popularity-for-new-asa-markets-now-available-on-apptweak", 301 }
  242. get("/aso-blog/say-hi-to-our-google-play-keyword-tool-in-english-french-spanish-and-german") { redirect "/en/aso-blog/apple-search-popularity-for-new-asa-markets-now-available-on-apptweak", 301 }
  243. get("/aso-blog/5-ab-testing-tools-to-optimize-your-app-marketing-strategy") { redirect "/en/aso-blog/ultimate-guide-to-screenshots-a-slash-b-testing", 301 }
  244. get("/aso-blog/ciao-a-tutti-italian-now-supported-by-our-keyword-tool") { redirect "/en/aso-blog/apple-search-popularity-for-new-asa-markets-now-available-on-apptweak", 301 }
  245. get("/aso-blog/the-most-searched-app-store-keywords-of-2019") { redirect "/en/aso-blog/the-most-searched-app-store-keywords", 301 }
  246. get("/aso-blog/surfing-the-emoji-how-emojis-can-boost-user-acquisition-and-retention") { redirect "/en/aso-blog/how-to-prepare-for-new-google-metadata-policy-changes", 301 }
  247. get("/aso-blog/5-tips-leverage-appmarketing-strategy-xmas") { redirect "/en/aso-blog/app-seasonality-trends-for-holiday-season", 301 }
  248.  
  249. %w(
  250.   /aso-blog/apple-changes-the-appstore-algorithm-everything-you-need-to-know
  251.   /aso-blog/new-free-aso-tool-app-store-play-store-algorithm-change-detector
  252. ).each do |blog_slug|
  253.   get "#{blog_slug}" do
  254.     redirect "/en/aso-blog/the-latest-app-store-algorithm-updates-uncovered", 301
  255.   end
  256. end
  257.  
  258. get("/aso-blog/discover-most-used-keywords-per-app-category-2019") { redirect "/en/aso-blog/Discover-the-most-used-keywords-per-app-category", 301 }
  259. get("/aso-blog/google-play-announcements-aso-2.0-is-here") { redirect "/en/aso-blog/google-play-announcements-aso-2-0-is-here", 301 }
  260. get("/aso-blog/aso-experts-directory") { redirect "/#{I18n.locale}/aso-experts", 301 }
  261. get("/aso-blog/aso-client-testimonial-*") { redirect "/#{I18n.locale}/customer-testimonials", 301 }
  262. get("/aso-blog/holiday-season-huge-downloads-spikes-expected") { redirect "/en/aso-blog/app-seasonality-trends-for-holiday-season", 301 }
  263. get("/aso-blog/5-tips-to-optimize-your-ios-app-name") { redirect "/en/aso-blog/optimizing-your-app-title-keywords-vs-brand-name", 301 }
  264. get("/aso-blog/branded-vs-non-branded-keyword-analysis-on-apptweak") { redirect "/en/aso-blog/brand-vs-generic-breakdown-in-app-store-search", 301 }
  265. get("/aso-blog/the-power-of-app-reviews") { redirect "/en/aso-blog/reviews-ratings-understand-improve-app-user-opinions", 301 }
  266. get("/app-intelligence") { redirect "/#{I18n.locale}/market-intelligence", 301 }
  267. get ("/aso-resources/ios-15-conversion-optimization-content-hub") { redirect "/aso-resources", 301 }
  268. get ("/aso-resources/ios-15-aso-guide") { redirect "/aso-resources/guides/in-app-events-optimization-guide", 301 }
  269. get ("/market-intelligence/app-publishers") { redirect "/market-intelligence/publisher-insights", 301 }
  270. get ("/aso-blog/analyze-app-analytics-across-countries-in-app-intelligence") { redirect "/#{I18n.locale}/market-intelligence", 301 }
  271. get ("/aso-blog/top-5-2018-mobile-games-that-have-already-reached-10m-downloads") { redirect "/#{I18n.locale}/aso-blog/most-popular-apps-games", 301 }
  272.  
  273. ##
  274. # REDIRECTS blog posts to /aso-intelligence
  275. ##
  276.  
  277. %w(
  278.   /aso-blog/app-store-live-search-history-now-on-apptweak
  279.   /aso-blog/app-description-keyword-density
  280.   /aso-blog/new-feature-category-keywords
  281.   /aso-blog/google-play-store-install-keywords-official-data-now-on-apptweak-for-everyone
  282.   /aso-blog/apptweak-integration-with-business-intelligence-tools-get-the-reporting-insights-you-dream-of
  283.   /aso-blog/new-keyword-picking-tool-story-keywords
  284.   /aso-blog/unveil-keywords-your-competitors-rank-on-and-you-don-t
  285.   /aso-blog/keyword-research-test-your-metadata-keyword-density
  286.   /aso-blog/new-keyword-movement-detector
  287.   /aso-blog/keywords-organic-downloads-distribution
  288.   /aso-blog/live-search-updated-see-rich-search-results
  289.   /aso-blog/new-apptweak-updates-keywords-similar-apps-more
  290.   /aso-blog/new-conversion-tracking-features
  291.   /aso-blog/new-get-your-daily-aso-report-in-your-inbox
  292.   /aso-blog/new-in-live-search-the-real-phone-experience
  293.   /aso-blog/boosting-your-app-s-organic-visibility-in-2018-what-you-need-to-know
  294. ).each do |blog_slug|
  295.   get "#{blog_slug}" do
  296.     redirect "/#{I18n.locale}/aso-tools", 301
  297.   end
  298. end
  299.  
  300. ##
  301. # REDIRECTS blog posts to /ad-intelligence
  302. ##
  303.  
  304. %w(
  305.   /aso-blog/search-ads-update-find-app-competitors-keywords
  306.   /aso-blog/search-ads-intelligence-top-bidding-keywords-and-top-bidding-apps
  307.   /aso-blog/search-ads-in-depth-share-of-voice-study-and-history
  308.   /aso-blog/new-search-ads-intelligence-dashboard
  309.   /aso-blog/search-ads-keywords-already-available-on-apptweak
  310.   /aso-blog/priviet-russian-keywords-have-landed-on-apptweak
  311. ).each do |blog_slug|
  312.   get "#{blog_slug}" do
  313.     redirect "/#{I18n.locale}/ad-intelligence", 301
  314.   end
  315. end
  316.  
  317. ##
  318. # REDIRECTS blog posts to listing page: /aso-blog
  319. ##
  320.  
  321. %w(
  322.   /aso-blog/ios-12-release-what-we-know-so-far-app-store-optimisation-on-apple-is-evolving
  323.   /aso-blog/app-growth-meetup-in-paris-a-deezer-case-study-on-app-seasonality
  324.   /aso-blog/compare-your-visibility-with-competitors-and-spot-keyword-opportunities
  325.   /aso-blog/what-s-changing-in-the-new-google-play-console
  326.   /aso-blog/ranking-history-improved-with-keywords-percentage-stack
  327.   /aso-blog/apple-app-names-now-reduced-to-50-characters
  328.   /aso-blog/apple-search-popularity-history-now-available
  329.   /aso-blog/a-first-look-at-disney-app-store-launch
  330.   /aso-blog/5-statistics-that-show-retention-is-the-new-growth-hacking
  331.   /aso-blog/develop-an-android-or-ios-app-the-dilemma
  332.   /aso-blog/how-to-define-your-mobile-app-brand
  333.   /aso-blog/how-to-find-mobile-app-developers-5-easy-ways
  334.   /aso-blog/5-app-growth-hacking-tips
  335.   /aso-blog/how-to-do-app-store-research-for-startup-founders
  336.   /aso-blog/improve-retention-with-these-4-steps
  337.   /aso-blog/how-to-create-an-awesome-landing-page-and-why-should-you-do-it
  338.   /aso-blog/the-future-of-deep-linking-from-app-to-app
  339.   /aso-blog/getting-started-with-mobile-app-testing-what-you-need-to-know
  340.   /aso-blog/how-to-use-micro-interactions-to-boost-your-apps-engagement
  341.   /aso-blog/6-reasons-progressive-web-apps-are-here-to-stay
  342.   /aso-blog/correct-understanding-lifetime-value-essential-mobile-marketing-success-thomas-applift
  343.   /aso-blog/6-tips-to-leverage-social-media-strategies-for-your-apps-by-jayneel-from-openxcell
  344.   /aso-blog/7-key-aso-takeaways-from-2015
  345.   /aso-blog/ticking-the-right-boxes-for-mobile-user-onboarding
  346.   /aso-blog/why-do-people-download-your-app
  347.   /aso-blog/4-hacks-to-increase-app-retention-and-engagement-with-push-notifications
  348.   /aso-blog/discover-the-best-ways-to-monetize-your-app-2
  349.   /aso-blog/how-to-create-your-own-podcast-to-drive-app-downloads
  350.   /aso-blog/5-ways-to-stay-ahead-of-your-competitors
  351.   /aso-blog/every-app-marketer-work-app-store-optimization
  352.   /aso-blog/welcome-to-the-z-world
  353.   /aso-blog/why-the-apple-watch-is-set-to-improve-mobile-best-practices
  354.   /aso-blog/why-your-app-design-doesnt-need-to-be-innovative
  355.   /aso-blog/3-adtech-blunders-and-their-learnings
  356.   /aso-blog/5-steps-to-turn-an-app-idea-into-a-reality
  357.   /aso-blog/app-marketing-using-deep-linking
  358.   /aso-blog/aso-means-app-developers
  359.   /aso-blog/q-and-a-with-aso-expert-laurie-galazzo
  360.   /aso-blog/3-important-equations-mobile-marketing
  361.   /aso-blog/5-push-notifications-strategies-to-increase-app-engagement
  362.   /aso-blog/7-step-process-to-getting-publicity-on-a-big-blog
  363.   /aso-blog/ad-blocking-expansion-how-will-the-mobile-advertising-ecosystem-adapt
  364.   /aso-blog/amazon-releases-fire-phone-new-opportunities-for-app-developers
  365.   /aso-blog/apple-app-store-approval-now-reduced-to-just-one-day
  366.   /aso-blog/four-things-to-do-before-your-app-launch
  367.   /aso-blog/interview-frederic-delga-mobpartner
  368.   /aso-blog/laurie-galazzo-inbound-marketing-manager-at-apptweak-talks-aso
  369.   /aso-blog/mobile-presence-apptweak-brings-app-store-optimization-to-the-masses
  370.   /aso-blog/white-label-pdf-export-has-landed-on-apptweak
  371.   /aso-blog/3-new-ios9-features-that-app-developers-need-to-know-about
  372.   /aso-blog/a-4-step-approach-to-creating-your-first-app
  373.   /aso-blog/discover-the-24-worlds-largest-social-networks-now
  374.   /aso-blog/ios9-3-new-opportunities-for-app-developers
  375.   /aso-blog/should-uk-music-streaming-services-fear-itunes-radios-arrival
  376. ).each do |blog_slug|
  377.   get "#{blog_slug}" do
  378.     redirect "/#{I18n.locale}/aso-blog", 301
  379.   end
  380. end
  381.  
  382. ##
  383. # REDIRECTS to /mobile-app-news blog version
  384. ##
  385. %w(
  386.   travel-category-rebounding-to-pre-pandemic-download-levels
  387.   what-s-trending-in-the-app-stores-bereal-mlb-obimy
  388.   most-popular-apps-games
  389.   most-popular-dating-apps-in-india
  390.   check-out-the-most-popular-dating-apps-by-country
  391. ).each do |blog_slug|
  392.   get "/aso-blog/#{blog_slug}" do
  393.     redirect "/en/mobile-app-news/#{blog_slug}", 301
  394.   end
  395. end
  396.  
  397. get ("/aso-blog/infographic-app-icon-color-palette-analysis-by-category-ios") { redirect "/en/aso-blog/infographic-mobile-games-app-icon-trends", 301 }
  398. get ("/aso-blog/new-app-play-store-market-intelligence") { redirect "/en/aso-blog/apptweak-s-new-app-market-intelligence-find-growth-opportunities", 301 }
  399. get ("/aso-blog/apptweak-s-new-app-market-intelligence-find-growth-opportunities-2") { redirect "/en/aso-blog/apptweak-s-new-app-market-intelligence-find-growth-opportunities", 301 }
  400. get ("/aso-blog/5-reasons-to-connect-your-apple-google-console") { redirect "/en/aso-blog/connect-your-apple-google-console", 301 }
  401. get ("/aso-blog/infographic-review-the-top-us-mobile-apps-games-of-2018") { redirect "/en/aso-blog/infographic-top-mobile-apps-games", 301 }
  402. get ("/aso-blog/9-tips-to-optimize-your-app-screenshots-2") { redirect "/en/aso-blog/how-to-optimize-your-app-screenshots", 301 }
  403. get ("/aso-blog/5-tips-to-optimize-your-ios-app-name") { redirect "/en/aso-blog/optimizing-your-app-title-keywords-vs-brand-name", 301 }
  404. get ("/aso-blog/5-tips-to-optimize-your-app-description") { redirect "/en/aso-blog/app-store-description-best-practices", 301 }
  405. get ("/aso-blog/4-tips-to-increase-your-mobile-app-s-conversion-rate") { redirect "/en/aso-blog/increase-your-apps-conversion-rate", 301 }
  406. get ("/aso-blog/10-tips-to-find-the-perfect-keywords") { redirect "/en/aso-blog/how-to-find-the-perfect-keywords-for-your-app", 301 }
  407.  
  408.  
  409. #
  410. # V3 : After moving to algolia category pages no longer exist
  411. #
  412. get ("/aso-blog/category/:cat") { redirect "/#{I18n.locale}/aso-blog", 301 }
  413.  
  414. #
  415. # V2 : Non SEO Optimized categories
  416. #
  417.  
  418. get ("/aso-university") { redirect "/#{I18n.locale}/aso-blog", 301 }
  419.  
  420. get("/aso-university/:slug") { redirect "/#{I18n.locale}/aso-blog", 301 }
  421. get("/amp/aso-university/:slug") { redirect "/#{I18n.locale}/aso-blog", 301 }
  422. get("/most-recent") { redirect "/#{I18n.locale}/aso-blog", 301 }
  423. # The 'most recent' pagination system thinks the "page 1" if at index.html
  424. # There is probably a way to force Jekyll to think it's properly located
  425. # at /most recent, but I could not find it, hence a 301 rediretc instead
  426. get("/most-recent/index.html") { redirect "/#{I18n.locale}/aso-blog", 301 }
  427. get("/most-recent/posts/:id") { redirect "/#{I18n.locale}/aso-blog/#{params[:id]}", 301 }
  428. get("/blog") { redirect "/#{I18n.locale}/aso-blog", 301 }
  429. get("/blog/archives") { redirect "/#{I18n.locale}/aso-blog/archives", 301 }
  430. get("/learn") { redirect "/#{I18n.locale}/aso-blog", 301 }
  431. get("/blog/:slug") { redirect "/#{I18n.locale}/aso-blog/#{params[:slug]}", 301 }
  432. get("/learn/:slug") { redirect "/#{I18n.locale}/aso-blog/#{params[:slug]}", 301 }
  433. get("/amp/blog/:slug") { redirect "/#{I18n.locale}/amp/aso-blog/#{params[:slug]}", 301 }
  434. get("/amp/learn/:slug") { redirect "/#{I18n.locale}/amp/aso-blog/#{params[:slug]}", 301 }
  435. get("/learn/category/:cat_id") { redirect "/#{I18n.locale}/aso-blog", 301 }
  436. #
  437. # V1  :Articles with dates
  438. #
  439.  
  440. get("/blog/:year/:month/:slug") { redirect "/#{I18n.locale}/aso-blog/#{params[:slug]}" }
  441. get("/blog/:year/:month/:day/:slug") { redirect "/#{I18n.locale}/aso-blog/#{params[:slug]}" }
  442. get("/learn/:year/:month/:slug") { redirect "/#{I18n.locale}/aso-blog/#{params[:slug]}" }
  443. get("/learn/:year/:month/:day/:slug") { redirect "/#{I18n.locale}/aso-blog/#{params[:slug]}" }
  444. get("/aso-university/:year/:month/:slug") { redirect "/#{I18n.locale}/aso-university/#{params[:slug]}" }
  445. get("/aso-university/:year/:month/:day/:slug") { redirect "/#{I18n.locale}/aso-university/#{params[:slug]}" }
  446. get("/app-aso-blog/:slug") { redirect "/#{I18n.locale}/aso-blog/#{params[:slug]}", 301 }
  447. get("/amp/aso-blog/:slug") { redirect "/#{I18n.locale}/aso-blog/#{params[:slug]}", 301 }
  448.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement