Chciałem na swojej małej stronie wprowadzić mechanizm ładnych linków, przyjaznych URL, czy jak to jeszcze można nazwać.
Chciałbym aby następująco były tłumaczone adresy:
example.com/cokolwiek -> example.com/index.php?page=cokolwiek
example.com/cokolwiek/ -> example.com/index.php?page=cokolwiek
example.com/article -> example.com/index.php?page=article?article=1
example.com/article/ -> example.com/index.php?page=article?article=1
example.com/article/jakis -> example.com/index.php?page=article?article=jakis
example.com/article/jakis/ -> example.com/index.php?page=article?article=jakis
Mój plik .htaccess wygląda aktualnie następująco:
Kod
RewriteRule ^article/(.+)/$ index.php?page=article&article=$1
RewriteRule ^article/(.+)$ index.php?page=article&article=$1
RewriteRule ^article/$ index.php?page=article&article=1
RewriteRule ^article$ index.php?page=article&article=1
RewriteRule ^(.+)/$ index.php?page=$1
RewriteRule ^(.+)$ index.php?page=$1
RewriteRule ^article/(.+)$ index.php?page=article&article=$1
RewriteRule ^article/$ index.php?page=article&article=1
RewriteRule ^article$ index.php?page=article&article=1
RewriteRule ^(.+)/$ index.php?page=$1
RewriteRule ^(.+)$ index.php?page=$1
Przykład nie działa dla żadnego przypadku:
zawsze $_GET = Array ( [jeden] => index.php )
Gdy wykomentuję dwie ostatnie linijki, działa to dla podstron article w każdej kombinacji z powyższych.
Gdzie leży błąd w moim myśleniu?
Wiem że można ten plik wygenerować "ręcznie" dla każdego możliwego przypadku www.example.com/cokolwiek ale chciałbym oprzeć to na wyrażeniu regularnym.
Głupio mi prosić o gotowca, ale niestety nie potrafię sam rozwiązać tego problemu (wiem, że w necie jest pełno poradników, ale nadal coś w mojej głowie nie zaskoczyło)