Što je mod_rewrite
Mod_rewrite modul koristi mehanizam prepisivanja zasnovan na pravilima i redoviti PCRE parser za preuređivanje traženih URL-ova na zahtjev. Prema zadanim postavkama mod_rewrite preslikava URL na stazu datotečnog sustava. Međutim, također se može koristiti za preusmjeravanje jednog URL-a na drugi URL ili za pozivanje internog upozorenja proxyja.
mod_rewrite pruža fleksibilan i moćan način manipulacije URL-ovima s neograničenim brojem pravila. Svako pravilo može imati neograničen broj uvjeta, vezanih pravila, što vam omogućuje da prepisujete URL-ove na temelju poslužiteljskih varijabli, varijabli okoline, HTTP zaglavlja ili vremenskih oznaka.
mod_rewrite radi na punoj URL stazi, uključujući odjeljak s informacijama o putu. Pravilo prepisivanja može se pozvati u httpd.conf ili u .htaccess datotekama. Put generiran pravilom prepisivanja može uključivati niz upita ili može dovesti do internog procesiranja, vanjskog preusmjeravanja zahtjeva ili unutarnjeg protoka proxyja.
Postavite mod_rewrite
Omogući mod_rewrite:
sudo a2enmod rewrite
sudo systemctl restart apache2
Konfigurirajte prepoznavanje pravila iz datoteke .htaccess
sudo nano /etc/apache2/sites-available/000-default.conf
Unutar ove datoteke pronaći ćete blok koji započinje s <VirtualHost *: 80>
. Unutar ovog bloka dodajte sljedeći novi blok tako da konfiguracijska datoteka izgleda ovako:
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
. . .
</VirtualHost>
Da bismo omogućili nova pravila, moramo ponovno pokrenuti Apache poslužitelj
sudo systemctl restart apache2
Sada možete dodati pravila prepisivanja u datoteku .htaccess
koja se najčešće nalazi u korijenskom direktoriju web-aplikacije.