View Source Plug.RewriteOn (Plug v1.13.3)

A plug to rewrite the request's host/port/protocol from x-forwarded-* headers.

If your Plug application is behind a proxy that handles HTTPS, you may need to tell Plug to parse the proper protocol from the x-forwarded-* header.

plug Plug.RewriteOn, [:x_forwarded_host, :x_forwarded_port, :x_forwarded_proto]

The supported values are:

  • :x_forwarded_host - to override the host based on on the "x-forwarded-host" header
  • :x_forwarded_port - to override the port based on on the "x-forwarded-port" header
  • :x_forwarded_proto - to override the protocol based on on the "x-forwarded-proto" header

Since rewriting the scheme based on x-forwarded-* headers can open up security vulnerabilities, only use this plug if:

  • your app is behind a proxy
  • your proxy strips the given x-forwarded-* headers from all incoming requests
  • your proxy sets the x-forwarded-* headers and sends it to Plug