Redirect
Redirect requests from one URL to another or from one set of URLs to another set.
If you want to get started quickly, click on the button below.
This creates a repository in your GitHub account and deploys the application to Cloudflare Workers.
export default { async fetch(request) { const destinationURL = "https://example.com"; const statusCode = 301; return Response.redirect(destinationURL, statusCode); },};
export default { async fetch(request): Promise<Response> { const destinationURL = "https://example.com"; const statusCode = 301; return Response.redirect(destinationURL, statusCode); },} satisfies ExportedHandler;
from workers import Response
def on_fetch(request): destinationURL = "https://example.com" statusCode = 301 return Response.redirect(destinationURL, statusCode)
use worker::*;
#[event(fetch)]async fn fetch(_req: Request, _env: Env, _ctx: Context) -> Result<Response> { let destination_url = Url::parse("https://example.com")?; let status_code = 301; Response::redirect_with_status(destination_url, status_code)}
import { Hono } from 'hono';
const app = new Hono();
app.all('*', (c) => { const destinationURL = "https://example.com"; const statusCode = 301; return c.redirect(destinationURL, statusCode);});
export default app;
export default { async fetch(request) { const base = "https://example.com"; const statusCode = 301;
const url = new URL(request.url); const { pathname, search } = url;
const destinationURL = `${base}${pathname}${search}`; console.log(destinationURL);
return Response.redirect(destinationURL, statusCode); },};
export default { async fetch(request): Promise<Response> { const base = "https://example.com"; const statusCode = 301;
const url = new URL(request.url); const { pathname, search } = url;
const destinationURL = `${base}${pathname}${search}`; console.log(destinationURL);
return Response.redirect(destinationURL, statusCode); },} satisfies ExportedHandler;
from workers import Responsefrom urllib.parse import urlparse
async def on_fetch(request): base = "https://example.com" statusCode = 301
url = urlparse(request.url)
destinationURL = f'{base}{url.path}{url.query}' print(destinationURL)
return Response.redirect(destinationURL, statusCode)
use worker::*;
#[event(fetch)]async fn fetch(req: Request, _env: Env, _ctx: Context) -> Result<Response> { let mut base = Url::parse("https://example.com")?; let status_code = 301;
let url = req.url()?;
base.set_path(url.path()); base.set_query(url.query());
console_log!("{:?}", base.to_string());
Response::redirect_with_status(base, status_code)}
import { Hono } from 'hono';
const app = new Hono();
app.all('*', (c) => { const base = "https://example.com"; const statusCode = 301;
const { pathname, search } = new URL(c.req.url);
const destinationURL = `${base}${pathname}${search}`; console.log(destinationURL);
return c.redirect(destinationURL, statusCode);});
export default app;
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Products
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark