Przekierowywanie i przepisywanie adresów URL
Dowiedz się, jak przekierowywać żądania sieciowe do innych adresów URL lub przepisywać ich fragmenty na podstawie określonych kryteriów.
Przekierowywanie i przepisywanie adresów URL to bezpłatna lekcja Browser Extensions Development (Chrome & Edge) na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Browser Extensions Development (Chrome & Edge), a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Browser Extensions Development (Chrome & Edge) zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
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.
Ucz się JavaScript dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 12
- Lekcje
- 48
Często zadawane pytania
Czy lekcja „Przekierowywanie i przepisywanie adresów URL” jest bezpłatna?
Tak — pełny tekst „Przekierowywanie i przepisywanie adresów URL” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Browser Extensions Development (Chrome & Edge), przejdź na CoddyKit PRO. Kurs Browser Extensions Development (Chrome & Edge) zawiera 4 lekcji w sumie.
Co nauczysz się w „Przekierowywanie i przepisywanie adresów URL”?
Dowiedz się, jak przekierowywać żądania sieciowe do innych adresów URL lub przepisywać ich fragmenty na podstawie określonych kryteriów. Ćwiczysz Browser Extensions Development (Chrome & Edge) z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Browser Extensions Development (Chrome & Edge)?
Nie wymagamy żadnego doświadczenia. Browser Extensions Development (Chrome & Edge) w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Przekierowywanie i przepisywanie adresów URL”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Browser Extensions Development (Chrome & Edge)?
Tak. Każda lekcja Browser Extensions Development (Chrome & Edge) zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Blokowanie żądań sieciowych
- Modyfikowanie nagłówków żądań
- Przekierowywanie i przepisywanie adresów URL
- Dynamiczne reguły i debugowanie declarativeNetRequest