2.2.11 • Published 3 years ago

forcedomain v2.2.11

Weekly downloads
9,689
License
MIT
Repository
github
Last release
3 years ago

forcedomain

forcedomain is a middleware for Connect and Express that redirects any request to a default domain, e.g. to redirect to either the www or the non-www version of a domain.

Status

CategoryStatus
Versionnpm
DependenciesDavid
Dev dependenciesDavid
BuildGitHub Actions
LicenseGitHub

Installation

$ npm install forcedomain

Quick start

The first thing you need to do is to integrate forcedomain into your application. For that add a reference to the forcedomain module:

const { forceDomain } = require('forcedomain');

If you use TypeScript, use the following code instead:

import { forcedomain } from 'forcedomain';

If you now want to redirect your requests to a specific host, include the middleware and configure it accordingly:

app.use(forceDomain({
  hostname: 'www.example.com'
}));

Additionally, you can also specify a port and a target protocol:

app.use(forceDomain({
  hostname: 'www.example.com',
  port: 4000,
  protocol: 'https'
}));

By default, forcedomain redirects using permanent request. This is generally considered best practice with respect to SEO, as it tells search engines that there is a single long-term canonical address for a ressource.

If you want to use a temporary redirect instead, specify it as redirection type:

app.use(forceDomain({
  hostname: 'www.example.com',
  type: 'temporary'
}));

You can use excludeRule to disable redirect based on a regular expression:

app.use(forceDomain({
  hostname: 'www.example.com',
  excludeRule: /[a-zA-Z0-9][a-zA-Z0-9-]+\.herokuapp\.com/i
}));

You can use isEnabled to enable or disable redirection. Default value is true.

app.use(forceDomain({
  hostname: 'www.example.com',
  isEnabled: false
}));

Please note that localhost and local IPs (127.0.0.1, 192.168.x.x) are always being excluded from redirection. Hence you can continue developing locally as you are used to.

Using a reverse-proxy

If you are running your web application behind a reverse proxy such as Nginx, you have to forward the originally requested host.

server {
  // ...

  location / {
    proxy_pass http://localhost:3000;
    proxy_set_header Host $http_host;
  }
}

Running the build

To build this module use roboter.

$ npx roboter
2.2.11

3 years ago

2.2.10

3 years ago

2.2.9

3 years ago

2.2.8

3 years ago

2.2.5

3 years ago

2.2.7

3 years ago

2.2.6

3 years ago

2.2.4

3 years ago

2.2.3

3 years ago

2.2.2

3 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.1.1

3 years ago

2.1.0

4 years ago

2.0.1

4 years ago

2.0.0

5 years ago

1.0.1

5 years ago

1.0.0

6 years ago

0.8.1

7 years ago

0.8.0

8 years ago

0.7.0

8 years ago

0.6.0

8 years ago

0.5.0

9 years ago

0.4.0

9 years ago

0.3.0

9 years ago