To dalaman : Doporučuji nepřevádět různé parametry do GET, ale informaci o stránce parsovat z původního URL nedotčeného Rewritem.
Tedy Rewrite v .htacces bude zhruba:
RewriteEngine on
RewriteRule ^/(.+)$ /index.php [L,QSA]
A v index.php bude:
$uri = $_SERVER['REQUEST_URI'];
A pokud pak chci třeba z adresovat nějaký dokument v nějaké skupině, tak nemusím používat hloupé URL http://host.cz/index.php?katalog=kamna&zbozi=na-drevo, ale proste http://host.cz/kamna/na-drevo/.
V PHP to získám jednoduše:
if(preg_match('@^/(([^/]+)/)?(([^/]+)/)?((.*)/)?@', $pageURL, $match)) {
if(isset($match[2]))
$katalog = $match[2];
if(isset($match[4]))
$zbozi = $match[4];
//Pole dalších parametrů
if(isset($match[5]))
$params = split('/', $match[5]);
//Ošetření prázného pole $params[0] = '';
if($params[0] == '')
unset($params[0]);
}
Možná je to trochu matoucí, možná se to zdá zbytečný kalibr, ale když si to přečtete, zjistíte, že je to velmi jednoduché, flexibilní a na rozdíl od původního Rewrite, které se v určitých podmínkách chová jinak, je toto řešení přenosné všude.