URL rewriting

Modulul mod_rewrite din Apache permite modificarea URL-urilor într-o manieră complicată însă de o utilitate incontestabilă, transformarea URL-urilor dinamice în statice reprezentând o tehnică SEO de bază. Întrucât stăpânirea regulilor de transformare durează destul de mult, este indicată verificarea fişierului .htaccess într-un mediu de test.

Instalarea modulului mod_rewrite în XAMPP se face prin decomentarea liniei

LoadModule rewrite_module modules/mod_rewrite.so

din fişierul httpd.conf şi repornirea Apache. De asemenea este necesar ca directiva AllowOverride All să apară în tag-ul <Directory> al căii de instalare /xampp/htdocs. Verificarea instalării modulului se face inspectând lista phpinfo() la secţiunea Configuration > apache2handler, unde ar trebui să apară mod_rewrite în linia Loaded Modules.

În testarea pe localhost trebuie specificată în fişierul .htaccess calea către rădăcina site-ului.

Options +FollowSymLinks
RewriteEngine on
RewriteBase /turism/
RewriteRule litoral\.htm intern.php?tip=7 [L]
RewriteRule lista/pagina-([0-9]+)\.htm lista.php?pagina=$1 [L]

Regulile de transformare necesită actualizarea codului paginii, cum ar fi de exemplu:

<a href="litoral.htm">Litoral</a>
<a href="lista/pagina-{numar}.htm">Next</a>

în loc de

<a href="intern.php?tip=7">Litoral</a>
<a href="lista.php?pagina={numar}">Next</a>

Se poate întâmpla ca după folosirea slash-ului ca separator în legătura statică, calea către fişierele css sau javascript să fie compromisă. Problema poate fi rezolvată prin folosirea tag-ului <base> în antetul paginii:

<base href="http://localhost/turism/">

Postat în XAMPP