Jump to content
php.lv forumi

Smukas adresītes


hmnc

Recommended Posts

Sveiki!

Nezinu vai mans jautājums te īsti iederētos, bet nu mēģināsim :)

lieta tāda, ka ir vēlēšanās izveidot saitu, kur iekšējā adresācija būtu nevis šāda:

site.net/index.php?kkas=2&act=3&mod=4&get=5

bet gan:

site.net/2/3/4/5/

 

ar htaccess viss daudz maz skaidrs, bet kaut kur biju lasījis, ka to visu pasākumu var griezt bez htaccessiem.

vai tas ir reāli?

protams es nedomāju šo variantu: site.net/index.php/2/3/4/5/

kaut kā greizi izskatās :) bet nu jā.

paldies jau iepriekš.

Link to comment
Share on other sites

var nevis

site.net/index.php/2/3/4/5/

bet

site.net/?2/3/4/5/

 

un apstrādāt $_SERVER['QUERY_STRING']

 

a vispār nav vērts

13141[/snapback]

 

nu jā.

site.net/?2/3/4/5/ tas jau tas pats variants ir kas site.net/index.php?2/3... blabla

 

kapēc nav vērts? domā bez htaccess nav vērts vai vispār nav vērts?

Link to comment
Share on other sites

bet gala rezultātā, ja izmanto header('location: '), tad adresbārā rādās tā adrese, kas netika ievadīta.

13153[/snapback]

Nafig kaut kādi headeri??

 

Tajā ErrorDocument'ā izvadi freimu, kura vidū ielādē to vajadzīgo lapu  Bet tas jau sāk izklausīties pēc risinājum čerez ž..

Un nafig freimi?

 

http://roze.lv/dira/sdfgsdfg

http://roze.lv/dira/lalalalallalal

http://roze.lv/dira/1/2/34/345/456/37/567/

 

Ar Errodocument strādā tāpat. Un nekas nekur vairs nav jāredirektē. Vienīgi Errorlapai jābūt kaut kādam minimālajam izmēram jo savādāk IE zem kaut kādiem baitiem rāda savu defaulto.

 

Mīnus šādam piegājienam ir webservera headeri :)

 

HTTP request sent, awaiting response...

1 HTTP/1.1 404 Not Found

...

Link to comment
Share on other sites

  • 4 weeks later...

mod_rewrite trūkums - papildslodze (kaut arī laikam neliela) procesoram, ErrorDocument - tas, ka šis ir "netīrs haks" "caur d.", un piesārņo error logu ar fake kļūdām..

 

Bet ir viena ļoti laba un vienkārša metode, kā šo lietu paveikt bez mod_rewrite, un bez ErrorDocument. Parasti tutoriāļos tā nav aprakstīta, tur uzreiz, ja runā par nice/cool/user-friendly URLs, uzreiz ķeras pie mod_rewrite, kā vienīgā iespējamā varianta. Apmēram, tā kā bija 'govorim "Partija", dumaem - Ļeņin!'

 

Karoče, lieta ir tāda. Priekšnosacījums mod_rewrite NEizmantošanai: pirmais folderis URLī ir reāli eksistējošs FAILS. Ļoti piemērots variants daudzvalodīgajos webos, kas ir raksturīgi .lv zonā. Tad weba sāknē uztaisām failus ar nosaukumiem lv, en, ru; .htaccess'ā vai (labāk) apača config'ā nodefinējam, lai šos failus šajā folderī (t.i. ar pilnu ceļu) parsē PHP. Uz *NIX'ā šie faili būs symlink'i uz index.php, uz WIN tie saturēs vienu rindiņu <?php require 'index.php'; ?>

 

Un tālāk, iekš index.php (vai labāk, nosaukt viņu ~ zverudarzs2006.php, lai nekur neparādās URLī, noslēpjot PHP izmantošanas faktu), darām apmēram tā:

 

# definējam valodu
$lang = basename($_SERVER['SCRIPT_NAME']);
if (!in_array($lang, $CFG['languages'])) $lang = $CFG['languages'][0];

# parsējam URLi masīvā
if (@$_SERVER['PATH_INFO']) {
   $url_array = explode('/', strip_tags($_SERVER['PATH_INFO']));
   array_shift($url_array);
} else {
   $url_array = array();
}

# tagad šo masīvu var izmantot savām vajadzībām
//echo "<pre>"; print_r($url_array); echo "</pre>";

Šo metodi izmantoju, piemēram, šeit (linku piemēri):

http://smarthouse.lv/lv/gaisma

http://smarthouse.lv/lv/produkti/filosofija

 

p.s. serveris.lv uz kura jams stāv, gan nežēlīgi bremzē, laikam, savākušies pārāk daudz klientu, un pārslogots..]

Edited by Ežu Sargs
Link to comment
Share on other sites

Uz *NIX'ā šie faili būs symlink'i uz index.php, uz WIN tie saturēs vienu rindiņu <?php require 'index.php'; ?>

 

Un tālāk, iekš index.php (vai labāk, nosaukt viņu ~ zverudarzs2006.php, lai nekur neparādās URLī, noslēpjot PHP izmantošanas faktu), darām apmēram tā:

Manuprāt diezgan (galīgi) garām. Jo visa jēga dinamiskā webā jau ir šo failu neģenerēšanā. Pretēji ja manuāli veidojam visu lapas struktūru tad kāda īsti nozīme to visu saistīt ar mod_rewrite?

 

Ko darīsi kad tiks izveidota jauna kategorija? Ņemsi taisīsi symlinku. ģēnerēsi jaunu diru ar ar failu kurā rakstīsi php kodu?

Kas notiks ja materīali būs 100 - 1000 - 10000 ? Manuprāt šādi var iedzīvoties failsistēmas innožu trūkumā vai arī max open failu ierobežojumā. Failsīstēmas overheads ir krietni sāpīgāks par cpu noslodzi.

Arī lapas pārlikšana uz citu serveri varētu radīt galvas sāpes.

 

Var jau būt ka šis der kādā no weblapām ar pāris kategorijām, taču manuprāt kā universālu risinājumu to uzskatīt nekādi nevar.

Link to comment
Share on other sites

×
×
  • Create New...