Mod rewrite - nazwa folderu taka sama jak nazwa pliku php
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

Komentarze i opinie
Ano, też się spotkałem z takim ustawieniem Apache - najgorzej, jak się już ktoś przyzwyczai że tak zawsze działa, a potem się okaże, że na nowym serwerze nie ;-)
Szukałem własnie rozwiązania tej zagadki.
A gdzie słowo kluczowe MultiViews? ;)
Ty storm, a reguły RewriteCond to już wyszły z mody?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
?
Też miałem kiedyś taki problem i nijak nie mogłem dojść o co chodzi, skończyło się jednak po prostu na usunięciu konfliktu nazwy pliku i parametru w GET. W sumie było to dość dawno temu, więc już prawie o tym zapomniałem, ale z tego co pamiętam to nie znalazłem wtedy wyjaśnienia dlaczego tak się dzieje. Tak więc czekam razem z Tobą na czyjąś odpowiedź. ;]
Prawdę mówiąc zdziwiłem się jak przeczytałem ten wpis, że to nie działa. U mnie zawsze działało ;). Ja stosuję jednak nieco inną regułkę:
RewriteRule ^goto/([a-zA-Z0-9_\-]+)$ goto.php?target=$1 [L]
Nowy komentarz