Jeśli dobrze zrozumiałem, chcesz żeby w pasku adresu widniało np.
http://localhost/szukaj/pralka ?
Teoretycznie takie coś powinno działać
RewriteRule ^szukaj\.php\?q=(.*) /szukaj/$1 [L,R](backlashash przed .php, bo kropka to znak specjalny, chociaż bez niej też by działało, bo kropka zastępuje dowolny znak -ale wtedy szukaj8php zamiast szukaj.php też by przeszło)
$1 to pierwsza zmienna wyłapana z wyrażenia, kolejna do użycia byłaby $2 itd.; do zmiennych wrzucane jest to co jest grupowane w nawiasy, czyli np. przy dwóch zmiennych miałbyś coś takiego:
RewriteRule ^osoba\.php\?imie=(.*)&nazwisko=(.*) /osoba/$1,$2 [L,R]Niestety to co napisałem powyżej nie działa u mnie na Apache'u, a problemy stwarza znak zapytania. To znaczy
RewriteRule ^szukaj\.php
\?q=(.*) /szukaj/$1 [L,R]
wywołanie 'http://localhost/szukaj.php?q=aaa' nie działa - to znaczy, nie ma redirecta
---------------
RewriteRule ^szukaj\.phpq=(.*) /szukaj/$1 [L,R]
// na chama wywalony znak zapytaniawywołanie 'http://localhost/szukaj.phpq=aaa' ładnie działa, przekierowuje do /szukaj/aaa
Czy mógłby ktoś mnie oświecić, dlaczego znak zapytania w regexpie (po bożemu, poprzedzony backslashem) sprawia że takie coś nie przechodzi? Apache 2.2.6, WinXP. Pisałem wczoraj z
nieco podobnym problemem który stwarzał dwukropek i też nie otrzymałem odpowiedzi.