Documentation utilisateur
  1. Qu'est-ce que redirection.io ?
  2. Guide de démarrage
  3. Que sont les organisations et les projets ?
  4. Inviter de nouveaux collaborateurs
  5. Compte utilisateur et préférences
  6. Utilisation des logs de trafic
  7. Créer une règle
  8. Référence des triggers et des marqueurs
  9. Référence des actions
  10. Comment importer ou exporter des règles de redirection en masse ?
  11. Gestion des instances
  12. Notifications du projet
  13. Segmentation des projets
  14. Combien ça coûte ?
  15. Puis-je utiliser redirection.io gratuitement ?
  16. À propos de nous

Documentation développeur
  1. TL;DR; Fast track
  2. Installation de l'agent
  3. Mise à jour de l'agent
  4. Référence de configuration de l'agent
  5. Intégrations disponibles
  6. L'agent en tant que reverse proxy
  7. Module nginx
  8. Module Apache
  9. Intégration platform.sh
  10. Cloudflare Workers
  11. Intégration Fastly Compute@Edge
  12. Middleware Vercel
  13. Utiliser redirection.io avec Docker
  14. Est-ce rapide ?
  15. API publique

Crawler
  1. Qu'est-ce que le crawler de redirection.io ?
  2. Démarrer un crawl
  3. Planifier un crawl
  4. Analyse des résultats d'un crawl
  5. La liste des crawls
  6. Crédits de crawl et tarifs
  7. Erreurs d'exploration
  8. Référence des métriques du crawler
  9. Référence des colonnes du crawler

Instances managées
  1. Que sont les instances managées ?
  2. Ajouter un domaine à votre projet
  3. Limites et quota des instances managées
  4. Questions fréquemment posées

Base de connaissances
  1. Créez vos premières redirections
  2. redirection.io : recettes de règles
  3. Mise en place d'un serveur de redirection sur Azure Cloud
  4. Données structurées et extraits enrichis
  5. Qu'est-ce qu'une redirection d'URL ?
  6. Pourquoi utiliser les redirections d'URL et comment les configurer

Versions legacy
  1. Référence de configuration de l'Agent 1.x
  2. Intégrations dépréciées
  3. Intégration legacy de Cloudflare Workers

Changelogs
  1. redirectionio-agent
  2. libnginx-mod-redirectionio
  3. libapache2-mod-redirectionio

Intégration legacy de Cloudflare Workers

Cette page de documentation concerne la version dépréciée de notre intégration Cloudflare Workers et est conservée à des fins d'archivage. En particulier, cette version legacy ne peut pas exécuter les triggers et actions avancés, et ne supporte pas les paramètres associés aux règles. Nous vous conseillons vivement d'utiliser plutôt la version actuelle de notre intégration Cloudflare Worker.

Cette version a été dépréciée le 2 septembre 2020

Afin d'utiliser l'intégration legacy de redirection.io avec Cloudflare Workers :

  1. créez un compte redirection.io ;
  2. créez une organisation et un projet redirection.io. À cette étape, vous voudrez peut-être inviter vos collaborateurs ;
  3. rendez-vous sur l'écran "instances" de votre projet et localisez votre "clé de projet" en cliquant sur "Configurer sur votre infrastructure"
  4. Cloudflare Workers menuconnectez-vous à votre compte Cloudflare, puis cliquez sur le menu "Workers" et appuyez sur le bouton "Lancer l'éditeur" ;
  5. Cloudflare Workers editordans la partie gauche de l'éditeur, collez notre code Cloudflare Worker redirection.io, et remplacez le jeton de projet par votre propre valeur ;
  6. appuyez sur le bouton "Enregistrer" en bas de l'éditeur ;
  7. Cloudflare Workers route tabdans l'onglet "Routes", activez ce Cloudflare Worker pour l'ensemble de votre site web.

Une fois toutes ces étapes terminées, vous devriez commencer à voir les journaux de trafic dans votre manager redirection.io. Vous êtes prêt :-)

Code du worker Cloudflare redirection.io legacy

Cette section de documentation concerne la version dépréciée de notre intégration Cloudflare Workers et est conservée à des fins d'archivage. En particulier, cette version dépréciée ne peut pas exécuter les déclencheurs et actions avancés. Nous vous conseillons vivement d'utiliser plutôt la version actuelle de notre intégration Cloudflare Worker.

addEventListener('fetch', event => {
  event.respondWith(redirectAndLog(event.request))
})

const options = {
  token: 'PASTE YOUR PROJECT TOKEN HERE',
  timeout: 2000,
}

async function redirectAndLog(request) {
  const [response, ruleId] = await redirectOrPass(request)
  log(request, response, ruleId)

  return response
}

async function redirectOrPass(request) {
  const urlObject = new URL(request.url)
  const context = {
    host: urlObject.host,
    request_uri: urlObject.pathname + urlObject.search,
    user_agent: request.headers.get('user-agent'),
    referer: request.headers.get('referer'),
    scheme: urlObject.protocol.includes('https') ? 'https' : 'http',
    use_json: true,
  }

  let response

  try {
    response = await Promise.race([
      fetch('https://proxy.redirection.io/' + options.token + '/get', {
        method: 'POST',
        body: JSON.stringify(context),
        headers: {
          'User-Agent': 'cloudflare-service-worker/0.0.1'
        },
      }),
      new Promise((_, reject) =>
        setTimeout(() => reject(new Error('Timeout')), options.timeout)
      ),
    ])
  } catch (error) {
    return [await fetch(request), null]
  }

  const data = await response.text()

  try {
    response = JSON.parse(data)
  } catch (error) {
    // If some errors play regular request, anyway request will be in error when no redirection (404)
    return [await fetch(request), null]
  }

  // Send gone response
  if (response.status_code === 410) {
    return [new Response('', { status: 410 }), response.matched_rule.id]
  }

  // Send redirection response
  return [new Response('', {
    status: Number(response.status_code),
    headers: {
      Location: response.location,
    },
  }),
  response.matched_rule.id]
}

async function log(request, response, ruleId) {
  const urlObject = new URL(request.url)
  const context = {
    status_code: response.status,
    host: urlObject.host,
    method: request.method,
    request_uri: urlObject.pathname + urlObject.search,
    user_agent: request.headers.get('user-agent'),
    referer: request.headers.get('referer'),
    scheme: urlObject.protocol.includes('https') ? 'https' : 'http',
    use_json: true,
  }

  if (response.headers.get('Location')) {
    context.target = response.headers.get('Location');
  }

  if (ruleId) {
    context.rule_id = ruleId;
  }

  try {
    return await fetch(
      'https://proxy.redirection.io/' + options.token + '/log',
      {
        method: 'POST',
        body: JSON.stringify(context),
        headers: {
          'User-Agent': 'cloudflare-service-worker/0.0.1'
        },
      }
    )
  } catch (error) {
    // Do nothing, do not matters if some logs are in errors
    console.log('could not log')
    console.log(error)
  }
}
Cette page a été mise à jour le 28 août 2025
Vous ne trouvez pas votre réponse ?