Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pozbycie się znaku "?" w adresie
Forum PHP.pl > Forum > Przedszkole
iVorIus
Witam,
napisałem routing oparty o rozdzielenie po znaku "/" zmiennej $_SERVER['QUERY_STRING'].
Wszystko działa wedle moich oczekiwań, czyli np. adres www.example.com/?authorization/login , przypisuje kolejne zmienne: $a = authorization, $b = login i index.php kieruje do podanych bloków w skrypcie.
Przed dość długi czas szukałem informacji czy można pozbyć się znaku zapytania "?" z adresu, lecz nic nie znalazłem.

Moje pytanie brzmi, w jaki sposób usunę znak zapytania, przy jednoczesnym działaniu skryptu?
Obrazując na przykładzie: co zrobić, aby zamienić adres www.example.com/?authorization/login na www.example.com/authorization/login ?

Pozdrawiam, Ivorius
Polidiota
Możesz stworzyć plik .htaccess, wpisać do niego:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Wtedy wszystkie requsty które nie prowadzą do konkretnego pliku idą do index.php w którym spróbuj wpisać:
  1. echo $_SERVER['REQUEST_URI'];

iVorIus
Okej, dziękuję za odpowiedź, ale czy istnieje rozwiązanie niezależne od użytego serwera?
Bo teraz mówimy tylko o module pod Apache, a chciałbym uzyskać rozwiązanie, które zadziała niezależnie od użytego serwera.
iVorIus
Cytat(skowron-line @ 14.10.2010, 20:19:11 ) *


Właśnie z tej strony zaczerpnąłem wiedzę i zastosowałem opisany w pierwszym poście routing. I z tego co wyczytałem, korzystając z ForceType, adres będzie wyglądał tak: www.example.com/index/authorization/login , co i tak nie rozwiązuje mojego problemu...

Jest jeszcze inna możliwość pozbycia się znaku "?" z adresu?
wookieb
Wszystko zależy od oprogramowania serwera jakiego używasz. Jeżeli nie jest to apache to metod jest więcej niż jesteśmy w stanie tutaj rozpisać. Ale powiedzmy sobie szczerze na ilu innych serwerach będziesz pracować?
iVorIus
Faktycznie, nie będzie to duża ilość, ale zakładając nawet, że będę pracował tylko na Apache'u, to jedyne rozwiązania to mod_rewrite i ForceType?
Np., nie mam dostępu do mod_rewrite i chcę zastosować przyjazne adresy, w jaki sposób mogę to uzyskać? Czy oprogramowanie serwera zawsze będzie zależne od wyboru rozwiązania?
wookieb
Szczerze to nawet nie zakładalbym braku dostępu do mod_rewrite ponieważ każdy hostingodawca go ma.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.