Learn full-stack web development using fastn in a week
Learn Now
Dynamic Redirect

ftd.redirect: Dynamic Redirect

In any document you can use ftd.redirect to ignore the document and return a HTTP Redirect response.
-- ftd.redirect: /

Redirect To A Dynamic URL

You can fetch the URL to redirect using any variable as well, this can be used with processors.
-- import: fastn/processors as pr

;; get query parameter next
-- string next:
$processor$: pr.request-data

-- ftd.redirect: $next
Static Vs Dynamic
This feature works better with dynamic hosting. If you are using fastn in static site mode, then how the page looked when fastn build was called will be shown to everyone. But if you are using dynamic mode then this page would be regenerated on every page load.

Status Code

By default ftd.redirect returns HTTP response with 308 Permanent Redirect code. You can overwrite it by passing a code value:
-- ftd.redirect: /
code: 301
This will send 301 Moved Permanently response. Possible status codes are:
Code Name Temporary Or Permanent Usage Notes
301 Moved Permanently Permanent Prefer 308
302 Found Temporary Prefer 307
303 See Other Temporary Prefer 307
307 Temporary Redirect Temporary
308 Permanent Redirect Permanent
We do not yet support 300 - Multiple Choices or 305 - Use Proxy because we have not found a use case for them.