Mam problem z RewriteRule i przekierowaniem.
Jednak najpierw przykładowe dane:
$offert["parent_id"] = 1
$offert["id"] = 50
Otóż mam coś takiego:
<a href='index.php?a=oferta&no=".($offert["parent_id"])."&id=".$offert["id"]."'>Coś tam</a> //index.php?a=oferta&no=1&id=50
I chciałbym zrobić z tego ładny i przyjazny link:
oferta/1/50.html
Do .htcaccess dodałem wpis:
Options -Indexes
DirectoryIndex index.php
RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteRule ^css/ - [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^oferta/(.*)\.html$ index.php?a=oferta&no=$1 [NC]
RewriteRule ^oferta/(.*)/(.*).html$ index.php?a=oferta&no=$1&id=$2 [NC]
Kod również zmieniłem na
<a href='oferta/".($offert["parent_id"])."/".$offert["id"]."html'>Coś tam</a> //oferta/1/50.html
Jednak mi to nie działa
Przy jednej bądź 2 wartości tj.
RewriteRule ^oferta/(.*)\.html$ index.php?a=oferta&no=$1 [NC]
Przepisywanie działa i wszystko jest okej. Jednak problem się zaczyna gdy mam więcej niż 2 wartości przekazywane w metodzie GET.
Podejrzałem przez print_r($_SERVER); co tam jest przekazywane i znalazłem coś nieprawidłowego
Przy nie wiecej jak 2 wartosciach jest ok [REDIRECT_QUERY_STRING] => a=oferta&no=1 [REDIRECT_URL] => /website/oferta/1.html
Jednak przy wiekszej ilosci mam [REDIRECT_QUERY_STRING] => a=oferta&no=1/50 [REDIRECT_URL] => /website/oferta/1/50.html
a powinno być a=oferta&no=1$id=50.
Ktoś może mi w tym pomóc?
Tylko proszę mi nie pisać, że powinienem użyć jakiegoś frameworka gdzie przyjazne linki są już wbudowane. Wiem, że są bo używam też Zend-a, ale chciałbym się dowiedzieć dlaczego mi to nie działa i jak to można rozwiązać.