Draudzīgākas URL adreses ar .htaccess failu

Autors: mycompany.lv
Kategorija: Tehnoloģijas

Ieteikt draugiem


Kāpēc pārrakstīt URL adrses?

Dinamiskās web lapās, URL adreses rindā bieži tiek nodoti parametri. Šādās lapās parasti tiek izmantotas datu bāzes un lapas saturs ir atkarīgs no parametru vērtībām.

Tā, piemēram, ja datu bāzē glabājas dažādi teksti, tad mēs varētu gribēt web lapā attēlot kādu noteiktu tekstu atkarībā no parametra "text" vērtības. PHP kods teksta iegūšanai no datu bāzes un attēlošanai mums atrodas failā showtext.php. URL adrese šādā gadījumā varētu izskatīties apmēram šādi:
www.mycompany.lv/showtext.php?text=text1

Varbūt mēs gribētu arī pievienot tekstam noteiktu attēlu un izmantot attēla izvēlei parametru "image". Atbilstošs URL:
www.mycompany.lv/showtext.php?text=text1&image=image3

Kā redzam, tad ar katru parametru adreses garums un sarežģītība pieaug. Atcerēties tādu adresi ir sarežģīti un neērti. Turklāt - kāda jēga lapas apmeklētājam atcerēties iekšējo parametru nosaukumus?

Risinājums ir izmantot .htaccess failu, lai sarežģīto adresi pārveidotu vienkāršākā formā -
www.mycompany.lv/showtext/text1/image3.

Šajā gadījumā uz web lapu tiek nodoti tie paši parametri un serveris zinās, ka mēs gribam redzēt text1 un image3. Tomēr adrese tagad izskatās daudz pievilcīgāk, jo sarežģītās konstrukcijas ar parametru nosaukumiem ir paslēptas. Varbūt jau ievērojāt, ka arī šai mycompany.lv lapai adrese šobrīd ir tieši šadā formā :)

Kā to panākt?

Vienkārši! Izveidojam failu .htaccess ar sekojošu saturu: (rindas, kas sākas ar "#" ir komentāri un .htaccess failā neko neietekmē):


# Lai strādātu RewriteEngine, jānorāda
# FollowSymlinks opciju
Options +FollowSymLinks

# Ieslēdzam RewriteEngine
RewriteEngine on

# Definējam likumu, kas pārraksta statisko
# adresi uz dinamisko, lai mēs varētu izmantot
# mūs interesējošos parametrus
# (sekojošais teksts ir vienā rindā)
RewriteRule ^showtext/([^/]+)/([^/]+)/?$
/showtext.php?text=$1&image=$2 [L]



Daži ieteikumi un lietas, kam būtu vērts pievērst uzmanību:
  • Šāda adrešu pārveidošana strādās tikai tad, ja web serverim būs atļauts mod_rewrite parametrs;
  • Ievērosim, ka mūsu likumam .htaccess failā vārds "showtext" atrodas abās pusēs;
  • .htaccess failam jāatrodas tajā direktorijā, kur atrodas showtext.php fails.



    Komentāri

    Hannibals, 2009-02-24 19:32:40

    No Apache tutoriāļa:
    "In general, you should never use .htaccess files unless you don't have access to the main server configuration file."

    Principā visu, ko var izdarīt ar .htaccess failu, iespējams panākt arī iekš httpd.conf konfigurācijas Directory sadaļām. Turklāt šis veids ir ieteicams no ātrdarbības viedokļa.


    alijs, 2009-02-24 22:31:49

    Jā, var arī iekš httpd.conf, ja ir pieeja. Bet ja izmanto hostinga kompāniju pakalpojumus, tad ne visi dod tā brīvi mainīt servera konfigurācijas failus... ;)

    Par ātrdarbību teorētiski var piekrist, jo .htaccess fails tiek nolasīts katru reizi. Turklāt viņi var būt arī vairāki un atrasties dažādu līmeņu direktorijās - tad jānolasa visi, kas konkrētajam pieprasījumam vajadzīgi. Tomēr tās atšķirības ātrdarbībā, manuprāt, ir salīdzinoši niecīgas un vismaz nelielām web lapām nav būtiskas.

    Lai pievienotu komentāru, autorizējies!

  •  
    Par mums | Sadarbība | Noteikumi | Kontakti | Lapas karte © mycompany.lv 2008 - 2010