Introductie
HTTP-omleiding is een manier om het ene domein of adres naar een ander te verwijzen. Er zijn verschillende soorten omleidingen, elk met een andere betekenis voor de clientbrowser. De twee meest voorkomende typen zijn tijdelijke omleidingen en permanente omleidingen.
Tijdelijke omleidingen (responsstatuscode 302 Gevonden) zijn nuttig als een URL tijdelijk vanaf een andere locatie moet worden bediend. Bijvoorbeeld, als u site-onderhoud uitvoert, wilt u mogelijk een tijdelijke omleiding vanaf uw domein naar een uitlegpagina gebruiken om uw bezoekers te informeren dat u binnenkort terug zult zijn.
Permanente omleidingen (responsstatuscode 301 Permanent verplaatst) daarentegen informeren de browser dat deze het oude adres volledig moet vergeten en niet meer moet proberen er toegang toe te krijgen. Deze zijn nuttig wanneer uw inhoud permanent naar een nieuwe locatie is verplaatst, zoals wanneer u domeinnamen wijzigt.
Deze handleiding zal een meer gedetailleerde uitleg geven over hoe elk type omleiding in Nginx te implementeren, en enkele voorbeelden doorlopen voor specifieke gebruiksscenario’s.
Vereisten
Om deze handleiding te volgen, heeft u nodig:
- A server with Nginx installed and set up to serve your website(s). You can find some examples and instructions on the tutorials for Ubuntu 22.04, Debian, or CentOS.
Oplossing in één oogopslag
In Nginx kunt u de meeste redirects realiseren met de ingebouwde rewrite
-instructie. Deze instructie is standaard beschikbaar bij een nieuwe Nginx-installatie en kan worden gebruikt om zowel tijdelijke als permanente redirects te maken. In zijn eenvoudigste vorm neemt het minstens twee argumenten aan: de oude URL en de nieuwe URL.
U kunt een tijdelijke redirect implementeren met de volgende regels in uw serverconfiguratie:
Deze redirect geeft de browser opdracht om alle verzoeken voor www.domain1.com
door te sturen naar www.domain2.com
. Deze oplossing werkt echter alleen voor een enkele pagina, niet voor de hele site. Om meer dan één pagina door te sturen, kunt u de rewrite
-instructie met reguliere expressies gebruiken om volledige mappen in plaats van alleen individuele bestanden aan te geven.
redirect
komt overeen met reguliere expressiepatronen tussen haakjes. Het verwijst vervolgens naar de overeenkomende tekst in de redirect-bestemming met behulp van de expressie $1
, waarbij 1
de eerste groep overeenkomende tekst is. In complexere voorbeelden worden daaropvolgende overeenkomende groepen opeenvolgende nummers gegeven.
Bijvoorbeeld, als u elke pagina tijdelijk wilt doorsturen binnen www.domain1.com
naar www.domain2.com
, zou u het volgende kunnen gebruiken:
Standaard stelt de rewrite
richtlijn een tijdelijke omleiding in. Als u een permanente omleiding wilt maken, kunt u dit doen door redirect
te vervangen door permanent
aan het einde van de richtlijn, zoals dit:
Laten we doorgaan naar enkele specifieke voorbeelden.
Voorbeeld 1 — Verhuizen naar een ander domein
Als u een webaanwezigheid hebt en uw domein naar een nieuw adres wilt wijzigen, is het het beste om uw oude domein niet zomaar achter te laten. Bladwijzers naar uw site en links naar uw site die zich op andere pagina’s op internet bevinden, zullen breken als uw inhoud verdwijnt zonder enige instructies aan de browser over hoe het zijn nieuwe locatie kan vinden. Domeinen wijzigen zonder door te verwijzen zal ertoe leiden dat uw site verkeer verliest van eerdere bezoekers en oudere links.
In dit voorbeeld configureren we een omleiding van het oude domein genaamd domain1.com
naar het nieuwe genaamd domain2.com
. We zullen hier permanente omleidingen gebruiken omdat het oude domein zal worden afgeschaft en al het verkeer vanaf nu naar het nieuwe domein moet gaan.
Laten we aannemen dat u uw website zo hebt geconfigureerd dat deze wordt geserveerd vanaf een enkel domein genaamd domain1.com
, al geconfigureerd in Nginx zoals hieronder:
We gaan er ook van uit dat u al uw toekomstige versie van de website serveert op domain2.com
:
Laten we de configuratie van het serverblok voor domain1.com
wijzigen om een permanente redirect naar domain2.com
toe te voegen:
We hebben de bovengenoemde redirect toegevoegd met behulp van een rewrite
-instructie. De reguliere expressie ^/(.*)$
komt overeen met alles na de /
in de URL. Bijvoorbeeld, http://domain1.com/index.html
zal worden doorgestuurd naar http://domain2.com/index.html
. Om de permanente redirect te realiseren voegen we eenvoudigweg permanent
toe na de rewrite
-instructie.
Opmerking: Vergeet niet om je configuratie te testen met nginx -t
en vervolgens Nginx opnieuw op te starten nadat je je wijzigingen hebt aangebracht.
Voorbeeld 2 — Het creëren van een Persistente Ervaring Ondanks Wijzigingen in de Paginanamen
Soms is het nodig om de namen van individuele pagina’s te wijzigen die al zijn gepubliceerd en verkeer hebben ontvangen op je site. Alleen de naam wijzigen zou een 404 Niet gevonden fout veroorzaken voor bezoekers die proberen toegang te krijgen tot de oorspronkelijke URL, maar je kunt dit vermijden door een redirect te gebruiken. Hierdoor kunnen mensen die je oude pagina’s hebben gebookmarkt of ze hebben gevonden via verouderde links op zoekmachines nog steeds de juiste pagina bereiken.
Laten we aannemen dat je website twee aparte pagina’s had voor producten en diensten, genaamd products.html
en services.html
respectievelijk. Nu heb je besloten om die twee pagina’s te vervangen door een enkele aanbiedingspagina genaamd offers.html
in plaats daarvan. We zullen een eenvoudige redirect configureren voor products.html
en services.html
naar offers.html
.
We gaan ervan uit dat je website geconfigureerd is als volgt:
Het configureren van de redirects is zo eenvoudig als het gebruiken van twee redirectinstructies.
De rewrite
instructie accepteert het oorspronkelijke adres dat moet worden omgeleid, evenals het bestemmingsadres van een nieuwe pagina. Aangezien de verandering hier niet tijdelijk is, hebben we ook permanent
in de instructie gebruikt. Je kunt zoveel redirects als deze gebruiken als je wilt om ervoor te zorgen dat je bezoekers geen onnodige 404 Niet gevonden fouten zien bij het verplaatsen van de inhoud van de site.
Conclusie
Je hebt nu de kennis om verzoeken om te leiden naar nieuwe locaties. Zorg ervoor dat je het juiste type redirect gebruikt, aangezien een onjuist gebruik van tijdelijke redirects je zoekranglijst kan schaden.
Er zijn meerdere andere toepassingen van HTTP-redirects, waaronder het afdwingen van beveiligde SSL-verbindingen (d.w.z. het gebruik van https
in plaats van http
) en ervoor zorgen dat alle bezoekers alleen op het adres met het voorvoegsel www.
van de website terechtkomen.
Het correct gebruiken van redirects stelt je in staat om gebruik te maken van je huidige webaanwezigheid, terwijl je tegelijkertijd de mogelijkheid hebt om je sitestructuur aan te passen indien nodig. Als je meer wilt weten over de manieren waarop je bezoekers kunt doorverwijzen, heeft Nginx uitstekende documentatie over het onderwerp in de rewrite module-secties van de officiële documentatie en het officiële blogbericht over het maken van redirects.