Mod rewrite - nazwa folderu taka sama jak nazwa pliku php

2009-09-24 20:18

Udało mi się zdiagnozować ciekawy przypadek kiedy regułka rewrite nie działa tak jakbyśmy się tego spodziewali. "Winą" za to obarczam Apache, który posługuje się magicznymi sztuczkami.

Utwórzcie sobie przykładowo plik rewrite.php np. ze skryptem:

a następnie uruchomcie w przeglądarce www.adres-strony/rewrite/test i co się dzieje? Plik rewrite.php zostaje uruchomiony. Czary mary, pewnie ktoś w komentarzach wyjaśni dlaczego fachowo tak się dzieje oraz po co i popsuje całą magię, ale mniejsza z tym. Przejdźmy do naszej regułki, która NIE działa.

RewriteRule rewrite/([a-z0-9]+) rewrite.php?test=$1

Pomimo zastosowania teoretycznie poprawnej regułki, var_dump($_GET) zwróci nam pustą tablicę. Zgaduj zgadula i wyczarowałem coś co działa, czyli:

RewriteRule rewrite\.php/([a-z0-9]+) rewrite.php?test=$1

Tadam!

Słowa kluczowe: Apache, Techblog, mod_rewrite, przyjazne linki, seo, artykuł, blog

Projektowanie i tworzenie stron www w PHP5. Opisy i recenzje oprogramowania typu cms, blog, wiki, open source.
Wszelkie prawa zastrzeżone.