Skip to content

hitecherik/switchboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

switchboard

A simple Go server that allows you to specify various redirects in TOML.

While it's possible to write this directly in various reverse proxies, this is simpler and easier to configure. I made this mainly since some other projects involve setting up a lot of redirects, and the TOML notation makes it quicker to define them.

Setup

Configuration

First, define a config.toml file that contains your redirects.

"/abcd" = "http://example.com"
"/search/duck/duck/go" = "https://duckduckgo.com"

["example.com"]
"/foo/*" = "https://github.com"
"/" = "https://wikipedia.org"

At the top of the file, we defined two redirects that will be performed regardless of the host that the request is made to. Then, we define two additional redirects for only the example.com host.

"/foo/*" = "https://github.com" means that any path beginning with /foo/ will be redirected to https://github.com.

The precedence of redirect rules is:

  1. Any rules specified for a particular host.
  2. Rules specified for all hosts in the order in which they're defined.

Run the server

Next, we can install the program and run the HTTP server.

$ go get github.com/hitecherik/switchboard/cmd/switchboard
$ switchboard -config path/to/config.toml

This will run the server on port 8000 and will use the 301 Moved Permanently HTTP code for its redirects.

The full options for switchboard are:

Usage of switchboard:
  -config string
      file defining redirects (default "config.toml")
  -port uint
      port to listen on (default 8000)
  -temporary
      whether the redirect should be temporary

If the -temporary flag is passed, switchboard will use the 307 Temporary Redirect HTTP code.

License

This project is licensed under the MIT License.

Copyright © Alexander Nielsen, 2020.

About

A simple Go server that allows you to specify various redirects in TOML.

Resources

License

Stars

Watchers

Forks

Languages