Project

redirectly

0.0
The project is in a healthy, maintained state
Redirect server with dynamic URL and hostname support
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 2.1
>= 1.1, < 4
>= 5.3, < 7
~> 3.0
 Project Readme

Redirectly - Redirect server with dynamic URL and hostname support

Gem Version Build Status Maintainability


Redirectly is a simple URL redirect server that uses a simple INI file for defining dynamic redirects.


Install

$ gem install redirectly

Docker Image

Redirectly is also available as a docker image:

# Pull the image
$ docker pull dannyben/redirectly

# Run the redirectly command line
$ docker run --rm -it dannyben/redirectly --help

# Start the server with your local configuration file
$ docker run --rm -it \
    -p 3000:3000 \
    -v $PWD/redirects.ini:/app/redirects.ini \
    dannyben/redirectly 

Using with docker-compose

# docker-compose.yml
services:
  redirectly:
    image: dannyben/redirectly
    ports:
      - 3000:3000
    volumes:
      - ./redirects.ini:/app/redirects.ini

Using as an alias

$ alias redirectly='docker run --rm -it -p 3000:3000 -v $PWD/redirects.ini:/app/redirects.ini dannyben/redirectly'

Quick Start

# In an empty directory, create a sample configuration file
$ redirectly --init

# Start the server
$ redirectly

# In another terminal, access the server using one of the configured rules
$ curl -v something.localhost:3000

You should receive a redirect header:

# ...
< HTTP/1.1 302 Found
< Location: http://it-works.com/something
# ...

Usage

Redirectly requires a simple INI file with redirect configuration details.

You can create a sample configuration file by running:

$ redirectly --init

This will create a sample redirects.ini file:

example.com = https://other-site.com/
*.mygoogle.com/:anything = https://google.com/?q=%{anything}
example.org/* = https://other-site.com/
*.old-site.com = !https://permanent.redirect.com
:sub.app.localhost/* = http://it-works.com/%{sub}
(*)old-domain.com/*rest = http://new-domain.com/%{rest}

For additional server options, see:

$ redirectly --help

The configuration file is built of pattern = target pairs, where:

  • pattern - is any URL pattern that is supported by Mustermann.
  • target - is the target URL to redirect to.

Notes:

  • If target starts with an exclamation mark, it will be a permanent redirect (301), otherwise it will be a temporary redirect (302).
  • If pattern includes named arguments (e.g. example.com/:something), they will be available to the target as Ruby string substitution variables (e.g. %{something}).

Contributing / Support

If you experience any issue, have a question or a suggestion, or if you wish to contribute, feel free to open an issue.