URL rewrite

Kot naslov pove...
Nimam pojma kako naj naredim rewrite...Sem probaval po googlu iskat, probaval razne opcije, brez uspeha...

Skratka, imam dva tipa za rewrite:

  1. www.domena.com/krneki.php v www.domena.com/krenki/
  2. www.domena.com//image.php?img=/deals/2012/1110/13525831152394.jpg v www.domena.com/slike/13525831152394.jpg

S tem da so številke poljubna...

Tisto kar sem do sedaj porbaval v .htaccess je bilo ali brez efekta ali Internal Server Error

Ima kdo kak predlog?

Hvala

7 odgovorov

taka vprasanja je najbolje, da naslovis na stackoverflow, bos najhitreje in najkvalitetneje dobil odgovor

Ok,vseeno sem mislil da bo IM ponudil dober odgovor...:)

Na hitro napisano, probaj če deluje. Ne pozabi nastavit RewriteBase, če slučajno ni.

#rewrite točno določene mape "krneki"

RewriteRule ^krneki\/$ krneki.php [L,NC]

rewrite slike je malo drugačen kot si ti napisal:

www.domena.com/slike/LETO/DATUM/13525831152394.jpg

RewriteRule ^slike\/([0-9]+)\/([0-9]+)\/([0-9]+\.jpg) image.php?img=/deals/$1/$2/$3
2

Probavam in probavam pa nič...
Mogoče sem narobe nastavil rewritebase:
RewriteBase /

Je to uredu?

Kakšna je napaka? poglej v phpInfo() ali imaš mod_rewrite modul vklopljen.
Tudi če je in v apacheju ni nastavljen "AllowOverride On", ne bo delalo.

v .htaccessu imej na začetku tole:

RewriteEngine on

Rewrite base nastavi na mapo v kateri delaš. Če je to na root-u(sklepam iz tvojega primera), je / v redu. Jaz sem zgornjo kodo testiral in preverjeno deluje.

O mod_rewrite je napisano na tone tutorialov, tako da s tem se mi ne da ubadati,

bi ti pa rad svetoval, da če misliš s php servirati slike ne pozabi v headerju nastaviti ukaze za cache.

Recimo pri meni:

$exp_time = strtotime(CACHE_EXPIRES);
    header('Expires: ' . date(DATE_RFC2822, $exp_time));
    header('Pragma: cache');
    $seconds = $exp_time - time();
    header("Cache-Control: public, max-age=$seconds, pre-check=$seconds");

Kjer je CACHE_EXPIRES poljuben string, ki ga zna strtotime() sparsati (npr. 3 days ali 1 week).

1

Sem se zmotil...ko sem preveril je delovalo, ampak samo če direktno vpišem
www.mojdadomena.com/krneki/...če pa priletim na stran iz google je pa še vedno www.mojadomen.com/krneki.php