Hoe Mod_Rewrite in te stellen

De Apache webserver is een van de belangrijkste bouwstenen van internet en biedt websites en applicaties. Het is een complex systeem met veel opties, en een van de belangrijkste is de Rewrite Module, of kortweg "mod_rewrite". In dit artikel zullen we het gebruik van mod_rewrite bekijken en vervolgens onderzoeken hoe u het op uw eigen op Apache gebaseerde site kunt instellen.

Het doel van de Apache-herschrijfmodule

Het doel van deze module is het herschrijven van URL's op verschillende handige manieren. Dit betekent dat wanneer gebruikers via één URL op uw website terechtkomen (door deze in te typen of door een link te selecteren die deze bevat), ze op een andere URL terechtkomen. Er zijn een aantal redenen waarom je dit zou willen doen.

Gebruikers omleiden

U kunt mod_rewrite gebruiken om gebruikers van oudere, verouderde pagina's die mogelijk nog steeds in zoekresultaten worden weergegeven, naar nieuwere, up-to-date pagina's te leiden. Stel dat u bijvoorbeeld een pagina heeft op https://www.mysite.com/review2015; als iemand dit als een link tegenkomt en het selecteert, kun je een herschrijfregel gebruiken om ze door te verwijzen naar http://www.mysite.com/review2019.

instagram viewer

Gemakkelijker te onthouden URL's

Je hebt waarschijnlijk links gezien die gerelateerd zijn aan e-commerce met URL's zoals: https://www.thestore.net/3d78654954c29ace998658. Ontwikkelaars gebruiken dit soort labels om ervoor te zorgen dat items een unieke identificatie hebben, maar voor niet-techneuten is het moeilijk te onthouden.

Gelukkig kan een herschrijfregel je helpen om een ​​mooie URL te publiceren, zoals https://www.thestore.net/notebooks/spiral/3-subject-spiral/, die, wanneer gevolgd, een bezoeker naar degene met de lelijke URL leidt.

Unieke paginanamen

In de begindagen van het web was het gebruikelijk om de werkelijke naam van paginabestanden te zien wanneer u een website bezocht. De "Over ons"-pagina van een website kan bijvoorbeeld " http://www.someguys.org/about.html."

Maar er zijn een paar redenen waarom je deze niet veel meer ziet. De eerste is dat veel websites worden beheerd door contentmanagementsystemen, die slechts een handvol daadwerkelijke paginabestanden hebben. De rest van de inhoud wordt dynamisch toegevoegd terwijl de pagina wordt weergegeven, zodat alle pagina's eruit kunnen zien alsof ze dezelfde URL hebben, zoals " http://www.someguys.org/index.php." Met het herschrijven van URL's kunt u het uiterlijk van deze afzonderlijke pagina's hebben, terwijl u nog steeds een dynamisch CMS gebruikt om uw website te beheren.

Meer begrijpelijke URL's

Zoekmachines rangschikken pagina's hoger wanneer ze gemakkelijk te begrijpen URL's hebben. Dit betekent dat het nuttig is voor websites om een ​​URL te hebben zoals " https://www.thecompany.com/services/consulting" in plaats van " https://www.thecompany.com/index.php? section=services&page=consulting," aangezien het laatste deel meer op code lijkt dan op een URL.

Herschrijven zorgt ervoor dat je altijd je beste gezicht naar voren brengt, vanuit het perspectief van de URL.

Hoe u mod_rewrite op uw site instelt

Het herschrijven van URL's op Apache vereist twee hoofdcomponenten:

  • De daadwerkelijke herschrijfmodule binnen Apache inschakelen
  • De noodzakelijke herschrijfregels opsommen in een .htaccess-bestand.

Hoewel het gebruik voor het herschrijven van URL's evenzeer van toepassing is op andere webservers zoals IIS of nginx, zijn mod_rewrite en de onderstaande methoden alleen van toepassing op Apache.

Herschrijffunctie inschakelen in Apache

Eerst moet u de herschrijffunctie inschakelen in uw Apache-installatie.

  1. U moet uitzoeken waar het configuratiebestand van uw Apache zich bevindt. Dit is afhankelijk van het installatieprogramma dat u hebt gebruikt.

    • Op Windows moet u zoeken naar een map met de naam "/conf" onder de Apache-installatiemap.
    • Op het populaire XAMPP-installatieprogramma van macOS bevindt het zich in /Applications/XAMPP/xamppfiles/apache2/conf.
    • Op Linux zou het verschijnen in de map /etc/apache2. In elk geval zoekt u naar een bestand met de naam "httpd.conf", "http.conf" of "apache2.conf", dus u kunt ook de zoekfunctie van uw besturingssysteem gebruiken om deze te zoeken.
  2. Open het configuratiebestand in een teksteditor, zoals Kladblok van Windows of TekstBewerken op macOS.

  3. Zoek naar de regel "#LoadModule rewrite_module modules/mod_rewrite.so," en verwijder de hashtag aan het begin. Dit geeft een opmerking aan, wat betekent dat als deze er is, de Apache-server alles op die regel negeert. Verwijder de hashtag en de volgende keer zal Apache die regel uitvoeren wanneer deze opstart.

  4. Sla het configuratiebestand op en start de Apache-server opnieuw.

  5. Als alternatief zie je op sommige versies van Linux enkele mappen zoals "/etc/apache2/mods-available" en "/etc/apache2/mods ingeschakeld." Deze bevatten stukjes configuratiebestanden die bij elkaar zijn gezet dynamisch. In dit geval kunt u de volgende opdrachten uitvoeren om eerst de herschrijfmodule in te schakelen en vervolgens de Apache-server opnieuw te starten:

    sudo a2enmod herschrijven
    systemctl herstart apache2
  6. Nu is uw Apache-server klaar om URL's voor u te herschrijven. Alleen nu moet je vertellen welke je moet herschrijven en onder welke omstandigheden.

Mod_Rewrite-regels op uw site definiëren

U moet de regels voor mod_rewrite definiëren met behulp van de reguliere expressietaal. Gelukkig is er wat hulp beschikbaar. Voor een bepaalde herschrijving die u wilt inschakelen, kunt u een tool gebruiken zoals de regelgenerator van VisioSpark.

  1. Voer de URL in waarvan u wilt herschrijven, d.w.z. degene die een gebruiker zal invoeren, in het Van: veld.

  2. Voer de URL in waarnaar u wilt herschrijven, d.w.z. degene waar de gebruiker zal eindigen, in het Naar: veld.

    GUI Rewrite Rule Generators kunnen u de moeite besparen om RegEx te leren
  3. Selecteer het Captcha-besturingselement en selecteer vervolgens Gaan. De generator zou dan een resultaat moeten geven dat begint met "RewriteRule.

    Als je toevallig een andere generator vindt, kunnen deze stappen iets anders zijn, maar hopelijk in dezelfde marge.

Mod_Rewrite-regels voor uw site invoeren

Dus dit is geweldig, een manier om deze regels te maken met aanwijzen en klikken. Maar waar zet je ze?

Om regels op een website te gebruiken, moet u een bestand met de naam ".htaccess" maken in de hoofdmap van de website. Het is enigszins platformafhankelijk waar de bestanden voor een bepaalde website worden opgeslagen, maar je moet dat hebben bedacht om je website daar in de eerste plaats te implementeren.

Mogelijk bestaat er al een bestand met die naam. Als dat zo is, geweldig! U kunt eenvoudig uw regels aan dat bestand toevoegen.

  1. Maak een nieuw tekstbestand aan met de naam ".htaccess" in de root van uw website.

  2. Voer in de eerste regel de onderstaande code in. Dit vertelt de server dat u herschrijven voor de huidige website wilt inschakelen.

    Herschrijfmotor aan
  3. Voeg vervolgens elk van de regels toe die u met de generator hebt gemaakt. Het begin van ons bestand ziet er als volgt uit:

    Herschrijfmotor aan
    RewriteRule ^notebooks/spiral/3-subject-spiral/$ /3d78654954c29ace998658?&%{QUERY_STRING}
  4. Zoals bij elke wijziging van de Apache-configuratie, is het een goed idee om de server opnieuw op te starten.

Het gebruik van Mod_Rewrite kost tijd, maar de resultaten zijn het waard

Het gebruik van de mod_rewrite-functie op Apache kost zeker wat moeite. Je moet spelen met op tekst gebaseerde configuratiebestanden, een manier bedenken om zeer kieskeurige reguliere expressies in die bestanden te krijgen, en weten hoe je de service handmatig kunt stoppen en herstarten. Het zal waarschijnlijk veel trial-and-error vergen voordat je iets krijgt dat niet resulteert in een fout en zich correct gedraagt.

Dat gezegd hebbende, als je het eenmaal onder de knie hebt, zul je een groot voordeel halen uit mod_rewrite. Uw bezoekers zullen uw URL's beter kunnen onthouden en uw positie op Google zal waarschijnlijk verbeteren. De resulterende "mooie URL's" zijn tenslotte niet alleen voor de show. Ze zijn ook functioneel.

instagram story viewer