0Pricing
Browser Extensions Development (Chrome & Edge) · Leçon

Rediriger et réécrire les URL

Découvrez comment rediriger des requêtes réseau vers différentes URL ou réécrire certaines parties des URL selon des critères définis.

Rediriger et réécrire les URL est une leçon Browser Extensions Development (Chrome & Edge) gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Browser Extensions Development (Chrome & Edge), et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Browser Extensions Development (Chrome & Edge) comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Intro to URL Magic

Welcome! In this lesson, we'll learn how browser extensions can change where network requests go or how their URLs look.

  • Redirecting sends a request to a completely different URL.
  • Rewriting modifies parts of the original URL before it's processed.

Both are powerful tools for controlling web traffic using the `declarativeNetRequest` API.

Why Redirect or Rewrite?

Modifying URLs can serve many useful purposes:

  • Enforce HTTPS: Automatically upgrade insecure HTTP connections.
  • Fix broken links: Redirect old URLs to new ones.
  • Clean up URLs: Remove unnecessary tracking parameters.
  • Block unwanted content: Redirect specific requests to an empty page.

It helps improve security, privacy, and user experience.

The `redirect` Action Type

To redirect a network request, we use the `redirect` action type in our `declarativeNetRequest` rules. This action specifies a new URL or a pattern to generate one.

Here's a basic structure for a redirect rule:

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "url": "https://new-example.com"
    }
  },
  "condition": {
    "urlFilter": "https://old-example.com/*"
  }
}

Simple URL Redirect Example

Let's say you want to redirect all requests to an old blog post URL to a new one. This rule tells the browser: 'If you see a request for old-blog.html, send it to new-blog-post.html instead.'

[
  {
    "id": 1,
    "priority": 1,
    "action": {
      "type": "redirect",
      "redirect": {
        "url": "https://www.example.com/new-blog-post.html"
      }
    },
    "condition": {
      "urlFilter": "https://www.example.com/old-blog.html"
    }
  }
]

Enforcing HTTPS with Redirects

A common use case is to ensure secure connections. You can redirect all HTTP requests for a specific domain to their HTTPS equivalent. This enhances user security by encrypting data.

This rule redirects any HTTP request for example.com to its HTTPS version.

[
  {
    "id": 2,
    "priority": 1,
    "action": {
      "type": "redirect",
      "redirect": {
        "transform": {
          "scheme": "https"
        }
      }
    },
    "condition": {
      "urlFilter": "http://example.com/*",
      "resourceTypes": ["main_frame", "sub_frame", "script", "image", "stylesheet"]
    }
  }
]

Introducing `regexSubstitution`

Sometimes you don't want to redirect to a fixed URL, but rather modify parts of the original URL. This is where regexSubstitution comes in. It uses regular expressions to match and replace parts of the URL.

The matched parts from the regexFilter in the condition can be referenced in the substitution string using backreferences like \1, \2, etc.

Rewriting URL Paths Example

Imagine you have old URLs like /users/123 and want them to become /profile/123. You can use regexSubstitution to capture the ID and rewrite the path.

This rule captures the number after /users/ and reuses it in the /profile/ path.

[
  {
    "id": 3,
    "priority": 1,
    "action": {
      "type": "redirect",
      "redirect": {
        "regexSubstitution": "https://www.example.com/profile/\\1"
      }
    },
    "condition": {
      "regexFilter": "^https://www.example.com/users/([0-9]+)$",
      "resourceTypes": ["main_frame"]
    }
  }
]

Modifying Query Parameters

regexSubstitution is great for cleaning up query parameters. You might want to remove a specific tracking parameter, like utm_source, from URLs to improve privacy or simplify sharing.

This rule matches URLs with ?utm_source=... and removes that parameter, keeping everything else.

[
  {
    "id": 4,
    "priority": 1,
    "action": {
      "type": "redirect",
      "redirect": {
        "regexSubstitution": "\\1"
      }
    },
    "condition": {
      "regexFilter": "^(https?://[^?]+)\\?utm_source=[^&]*(?:&(.*))?$",
      "resourceTypes": ["main_frame"],
      "excludedInitiatorDomains": ["example.com"]
    }
  }
]

Match Patterns & Regular Expressions

Remember, `urlFilter` uses match patterns, which are simpler for basic matches. `regexFilter` requires full regular expressions and is used when you need to capture parts of the URL for `regexSubstitution`.

  • Match Patterns: Wildcards like *, specific schemes/hosts.
  • Regular Expressions: Powerful pattern matching with groups () and special characters.

Choose the right tool for the job!

Redirect Challenge

Consider a rule designed to redirect all requests from http://insecure.com to https://secure.com. Which `redirect` action type is best suited for this goal?

Recap: Redirects & Rewrites

Great job! You've learned how to powerfully control network requests:

  • Redirects: Send requests to entirely new URLs using `redirect` with a `url`.
  • Rewrites: Modify parts of URLs using `redirect` with `transform` or `regexSubstitution`.
  • HTTPS enforcement: A practical use of `transform` to upgrade connections.
  • URL cleaning: Use `regexSubstitution` to remove or change parameters.

These techniques allow you to enhance security, fix issues, and customize user browsing experiences.

Questions Fréquemment Posées

La leçon « Rediriger et réécrire les URL » est-elle gratuite ?

Oui — le texte complet de « Rediriger et réécrire les URL » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Browser Extensions Development (Chrome & Edge), passe à CoddyKit PRO. Le cours Browser Extensions Development (Chrome & Edge) comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Rediriger et réécrire les URL » ?

Découvrez comment rediriger des requêtes réseau vers différentes URL ou réécrire certaines parties des URL selon des critères définis. Tu pratiques Browser Extensions Development (Chrome & Edge) avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Browser Extensions Development (Chrome & Edge) ?

Aucune expérience préalable n'est requise. Browser Extensions Development (Chrome & Edge) sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Rediriger et réécrire les URL » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Browser Extensions Development (Chrome & Edge) ?

Oui. Chaque leçon Browser Extensions Development (Chrome & Edge) inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Bloquer les requêtes réseau
  2. Modifier les en-têtes des requêtes
  3. Rediriger et réécrire les URL
  4. Règles dynamiques et débogage de declarativeNetRequest
← Retour à Browser Extensions Development (Chrome & Edge)