Skip to content

Meta

My website: Redirector

Content evolves, pages move around, URLs get redirected. The simple facts of the web.

This task was published on


💡 automate

  • Store as (DRY) data
  • Publish to S3 with a Github action
S3 > Buckets > bucket
Edit static website hosting

Example:

{
  "posts/2020-aug/twenty-twenty-one": "posts/2020-08/twenty-twenty-one"
}

Redirects

[
  {
    "Condition": {
      "KeyPrefixEquals": "posts/2020-aug/twenty-twenty-one"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts/2020-08/twenty-twenty-one"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "posts/2020-jul/massive-attack-eutopia-ep"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts/2020-07/massive-attack-eutopia"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "posts/2020-may/getz/gilberto-vol-2-live-from-carnegie-hall"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts/2020-05/getz-gilberto-vol-2"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "posts/2020-may/getz/gilberto"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts/2020-05/getz-gilberto-vol-1"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "posts/2020-may/elliott-smith-figure-8"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts/2020-05/an-impossible-album"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "posts/2019-jun/tossa-de-mar-rocks"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts/2019-06/tossa-de-mar-rocks"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "posts/2019-jun/static-site-generators-a-brief-history"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts/2019-06/static-site-generators-brief-history"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "posts/2019-may/staging-my-website-v2-rebuilt-in-react-static"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts/2019-05/staging-my-website-v2-rebuilt-in-react-static"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "posts/2019-may/hello-world-again"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts/2019-06/hello-world-again"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "posts/2017-apr/london-lean-kanban-days-2017"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts/2017-04/london-lean-kanban-days-2017"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "posts/2017-jan/hello-world"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts/2017-01/hello-world"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "feed"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "blog"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/docs/project-structure"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/docs/conventions"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/records/current/a11y-no-shrink-to-fit"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/rejected/a11y-no-shrink-to-fit"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/records/current/browser-support"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/pending/browser-support"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/records/current/conventions-structure-atomic-semantics"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/rejected/conventions-structure-atomic-semantics"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/records/current/content-markdown-unified-remark-rehype"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/rejected/content-markdown-unified-remark-rehype"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/records/current/router-react-router"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/rejected/react-router"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/records/current/stack-jam-stack"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/current/ssr-with-jam-stack"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/records/current/stack-react-static-typescript"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/rejected/react-static"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/records/current/styling-sass-post-css"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/rejected/styling-sass-post-css"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/records/current/theming-css-variables"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/current/styling-css"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/records/rejected/stack-gatsby-typescript"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/rejected/gatsby"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "meta/records/rejected/styling-typed-css-modules"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/rejected/styling-typed-css-modules"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/static-websites"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/ssg"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/2020"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/personal"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/unified"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/unified-js"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/library"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/software-engineering"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/social-networks"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/social-web"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/internet"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/web-development"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/web-design"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "design"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/a11y"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/accessibility"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/remark"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/markdown"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/rehype"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/markdown"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/massive-attack"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/electronica"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/browserslist"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/web-development"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/1966"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/music"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/1964"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/music"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/elliot-smith"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/music"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/2000"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/music"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/sights"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/place"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/cloudfront"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/web-development"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/server-side-rendering"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/web-development"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/costa-brava"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/place"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/backlog"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/project/backlog"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/reach-router"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "meta/records/rejected/react-router"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/web-history"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "tags/web-development"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "tags/featured"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "posts"
    }
  },
  {
    "Condition": {
      "KeyPrefixEquals": "experiment/what-scrolls-down"
    },
    "Redirect": {
      "HostName": "andretorgal.com",
      "HttpRedirectCode": "301",
      "Protocol": "https",
      "ReplaceKeyPrefixWith": "lab/piece/what-scrolls-down"
    }
  }
]

Go back to top of the page