Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]mod_rewrite i firefox = problem
Forum PHP.pl > Forum > Przedszkole
uL33k
Witam,

w dniu dzisiejszym rozpoczęła się moja przygoda z mod_rewrite. Przejrzałem wiele stron i usilnie starałem się sprawić aby na mojej stronie pojawiły się wreszcie przyjazne URL'e. Rzekłbym "udało się!" i udał na kolejne piwo jednak nie wszystko działa jak bym sobie tego życzył. Na dobry początek wkleję zawartość .htaccess:

RewriteEngine On
RewriteBase /
RewriteRule ^([^/.]+)/?$ index.php?show=$1 [NC,L]

Efektów chyba się domyślacie:
http://strona.pl/index.php?show=articles

przyjmuje piękny adres w postaci
http://strona.pl/articles/

Niestety w przeglądarce firefox po wprowadzeniu adresu:
http://strona.pl/articles/

jest on zmieniany na:
http://strona.pl/?show=articles

Ponadto zauważyłem, że gdy wprowadzę w firefoxa następujący adres:
http://strona.pl//articles/

to wyświetla się żądana zawartość. Niestety przybył kolejny ukośnik a chciałbym aby we wszystkich przeglądarkach adres wyglądał tak samo.

Kombinowałem zatem i przerobiłem zaklęcie:
RewriteRule ^([^/.]+)/?$ index.php?show=$1 [NC,L]

na:
#RewriteRule ^(.+)\.html$ index.php?show=$1 [NC,L]

Owe polecenie dodaje .html zamiast ukośnika (/) na końcu. W rezultacie otrzymuję:
http://strona.pl/articles.html

Niby wszystko ok jednak uparłem się przy wersji pierwotnej i nigdzie nie mogę znaleźć odpowiedzi na mój problem. Czy wina leży po stronie przeglądarki czy może raczej po stronie składni polecenia w .htaccess?

Na koniec dodam tylko, że zmieniany jest tylko środek strony poprzez include w takiej postaci:

(zawartość pliku index.php)

$dozwolone=array('start','articles','portfolio','blog');
if (isset($_GET['show'])) $show=$_GET['show']; else $show=$dozwolone[0];
if (in_array($show,$dozwolone)) include($show.'/'.$show.'.php');
else include('404.php');


Oczywiście ma to wpływ na zmiany w adresie url jak zapewne o tym wiecie. Czemu o tym wspomniałem?
Jeśli uruchomię stronę pierwszy raz poprzez:
http://strona.pl/

to zmienna "show", która powinna przyjąć wartość "start" natomiast pozostaje pusta i w taki oto sposób w firefoxie widzę następujący URL:

http://strona.pl/?show=

Zaznaczam ponownie, że problem wsytępuje tylko w przeglądarce firefox.

Czekam na Wasze dobre rady.

Pozdrawiam,
uL33k

maviozo
Spróbuj usunąć całą pamięć podręczną firefoxa. To nie wygląda na ten sam problem, ale kiedyś też walczyłem z przekierowaniem 301 z nieistniejącej strony, na stronę główną. Potem dodałem adres, który wcześniej testowałem jako "nieistniejący" i firefox pamiętał przekierowanie nie wysyłając żądania, tylko przekierowywał z głowy. Dopiero usunięcie cache'a rozwiązało problem - a straciłem na to pół dnia testów biggrin.gif

A nuż to to samo
uL33k
Z ogromną radością stwierdzam, że pomogło. Dziękuję za pomoc. Browar się należy smile.gif
maviozo
Możesz kliknąć "pomógł" co najwyżej smile.gif
Quantum
a ja tam chętnie napije się za kolegę jak nie chce biggrin.gif
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.