Skip to main content
Gå til innhold

Redirector service

The redirector service is a web site that redirects users to updated URLs. It is designed to redirect requests for old domains to updated links.

Configuration

The configuration is hosted in a Git repository at gitlab.sikt.no. To add or update a site, clone that repository, and edit config.json.

The available options are:

acme (Optional): Whether cert-manager should create a Let's Encrypt cert for the redirect entry. The default is true.

default (optional): The default URL to redirect to if none of the entries in redirects match. If default is not set, a 404 Not Found will be returned if no redirects match.

Note: The path from the original URL is not included in the redirect to the default URL. I.e. if the user requests https://www.example.org/topic.html, topic.html is not added to the default URL when redirecting.

hostname (Mandatory): The FQDN of the domain the redirect is for.

https (Mandatory): Set to true to enable https for this site.

permanent (Optional): Whether we should send permanent or temporary redirects. The default is false, i.e. send temporary redirects.

redirects (Optional): This is an array of path/regex-based redirects. Each element consists of the following:

  • target (Mandatory): The URL that path should redirect to.
  • include_query_string (Optional): Set to false to remove the query string when redirecting. The default is to include the query string.
  • path: The path prefix that we should match.
  • regex: The regular expression to match against the URL.

Either path or regex must be specified.

(Remember order matters for redirects. To be able to redirect /tv/kanaler.html correctly it should be before redirect of /tv.)

Examples

Minimal example

Redirect all URLS on old.example.com to https://new.example.com/.

Note: This example does not preserve the path of the URL. I.e. https://old.example.com/some/path will redirect to https://new.example.com/.

{
"hostname": "old.example.com",
"https": true,
"default": "https://new.example.com/"
}

Redirect preserving the path

Use a path-based redirect in the redirects section to preserve the path in the URL. This will redirect https://old.example.com/some/path to https://new.example.com/some/path.

{
"hostname": "old.example.com",
"https": true,
"redirects": [
{
"path": "/",
"target": "https://new.example.com"
}
]
}

Regex based redirects

Use a regular expressions for advanced URL rewriting. This example uses a regular expression to remove .html from all URLs, with a fallback to a normal path-based redirect if the URL does not end with .html.

{
"hostname": "old.example.com",
"https": true,
"redirects": [
{
"regex": "^/(?P<path>.+)\\.html$",
"target": "https://new.example.com/{path}"
},
{
"path": "/",
"target": "https://new.example.com"
}
]
}

Deploying

Once you have made a configuration change, you can deploy it by pushing the change to the Git repository.

DNS setup

The domain names must be manually registered in DNS. These should be in the form of CNAME records pointing to redirector.uninett.no:

webmail.uninett.no.	IN	CNAME	redirector.uninett.no.

SSL certificates

The Redirector runs in the Platon PaaS cluster and certificates are handled by cert-manager which issues Lets Encrypt certificates.