pátek 11. listopadu 2011

.htaccess přepis pro více proměných

Řeším jako většina tvůrců nějakého webu podstrkávání "hezkých URL" nebo-li "cool URL". Už jsem viděl chybu 500 - Internal server error hodně krát  :-) a tak si myslím že jsem konečně nalezl elegantní řešení. Sice složitější ale naprosto svobodné.

Potřeboval jsem vytvořit url pro kategorie a podkategorie, nebo stránky a podstránky ve tvaru:

www.nejaky-web.cz/stranka/podstranka/podstranka-podstranky/...

Našel jsem na googlu spoustu různých řešení. Například to na Mikově blogu. Ale nestačilo mi to protože jsem chtěl mít možnost vytvořit adresu ne pro 5 proměnných, ne pro 6 ale rovnou pro neomezeně mnoho.
V Mikově řešení je problém, že musíte do .htaccess zapsat přepisy pro každý počet proměnných zvlášť, když jich pak budete chtít mít více, musíte je do souboru připsat. Jak známo nelze to upravit například nějakým cyklem třeba pomocí PHP, takže se to do souboru .htaccess musí prostě natvrdo napsat.

K řešení které jsem použil mi dopomohl jeden příspěvek právě z Mikova blogu, který navrhoval
uložit celou adresu do jedné proměnné (například do proměnné url) a pak ji teprve ve skriptu rozebrat.

Protože nechci mít v databázi uloženou adresu:

www.nejaky-web.cz/stranka/podstranka/podstranka-podstranky/

ale pouze adresu:

podstranka-podstranky

tak, krom poslední proměnné v adrese, mě vlastně proměnné z url zajímají jen proto abych se ujistil jestli není url falešná (někdo chce zobrazit podstránku stránky, která takovou podstránku nemá) a následně k tomu abych zjistil, jednotlivé odkazy nadstránek, které samozřejmě budu chtít také vypisovat..

z čehož vyplývají tři úkoly pro skript:
  1. Ověř jestli je adresa správná (zda podstránka, kterou chceme zobrazit opravdu má udané nadstránky), pokud ano pokračuj...
  2. Pokud je adresa správna, ulož si odkazy nadstránek, pro jejich výpis a výpis jejich odkazů..
  3. Zobraz stránku, jejíž odkaz je na posledním místě url...
Díky tomu jsem schopen rozebrat odkaz pro "nekonečně mnoho" podstránek, i když je toto řešení trochu krkolomnější je svobodné, což se cení :-)

Žádné komentáře:

Okomentovat