Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> .htaccess źle akceptuje Rewrite Rule, kiedy nie ustawiam wzoru z ukośnikiem na końcu
Asmox
post 13.07.2009, 19:22:32
Post #1





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

Ostrzeżenie: (0%)
-----


Nie wiem skąd się coś takiego wzięło. Chciałbym normalnie wykorzystać ModRewrite, ale .htaccess coś mi miesza... Mam plik index.php, który wyświetla zawartość tablicy $_GET. Kiedy .htaccess jest ustawiony tak:
Kod
Options FollowSymLinks
RewriteEngine On

RewriteRule ^(.*)/$ index.php?p=$1 [L]

To wpisywanie w przeglądarce http://localhost/folder/abc daje normalny rezultat:
Kod
Array ( [p] => o_mnie )

Natomiast gdy zmienię wzór, aby nie koniecznie uwzględniał ukośniki lub wcale:
RewriteRule ^(.*)/?$ index.php?p=$1 [L]
RewriteRule ^(.*)$ index.php?p=$1 [L]
to wtedy pojawia się ZONK:
Kod
Array ( [p] => index.php )

Jest to bardzo uciążliwe i ogólnie wyprowadza mnie z równowagi, ponieważ przy zmienianiu stron przez URL nie chce mi się wpisywać tego ukośnika na końcu (a poza tym trudniej zapamiętać adres Z UKOŚNIKIEM na końcu niż bez)
Wie ktoś co robić?


--------------------
Go to the top of the page
+Quote Post
erix
post 13.07.2009, 21:03:32
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Daj var_dump" title="Zobacz w manualu PHP" target="_manual na $_GET.

To cały htaccess?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Asmox
post 14.07.2009, 16:09:55
Post #3





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

Ostrzeżenie: (0%)
-----


Cytat(erix @ 13.07.2009, 22:03:32 ) *

To samo. Zapomniałem napisać, że ta wypisywana zawartość tablicy $_GET to było zwyczajne print_r.
Cytat(erix @ 13.07.2009, 22:03:32 ) *
To cały htaccess?

Tak.

Dzisiaj zauważyłem jeszcze jednego ZONKa. Mianowicie jeżeli adres strony przejdzie przez regułę RewriteRule, to serwer kompletnie olewa mi style (CSS). Zaczynam się zastanawiać, czy to właśnie nie jest wina serwera.

Ten post edytował Asmox 14.07.2009, 16:15:31


--------------------
Go to the top of the page
+Quote Post
erix
post 14.07.2009, 16:34:40
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
to serwer kompletnie olewa mi style (CSS). Zaczynam się zastanawiać, czy to właśnie nie jest wina serwera

To wina Twojego sposobu dołączania i opisywania reguł. Twoje - w tej chwili - przekazują wszystkie żądania do pliku php. Poszukaj o RewriteCond, znajdziesz rozwiązanie.

Cytat
To samo. Zapomniałem napisać, że ta wypisywana zawartość tablicy $_GET to było zwyczajne print_r.

Spróbuj dopisać
Kod
RewriteBase /

zaraz po aktywacji przepisywania.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Asmox
post 15.07.2009, 13:30:29
Post #5





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

Ostrzeżenie: (0%)
-----


Cytat(erix @ 14.07.2009, 17:34:40 ) *
To wina Twojego sposobu dołączania i opisywania reguł. Twoje - w tej chwili - przekazują wszystkie żądania do pliku php. Poszukaj o RewriteCond, znajdziesz rozwiązanie.

Poszukałem, chyba chodzi o REQUEST_URI, ale nie wiem jak zrobić, żeby nie przekierowywał plików z folderu public/. Na razie mam taki .htaccess:
Kod
Options FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !public/
RewriteRule ^(.*)/$ index.php?a=$1 [L]

Cytat(erix @ 14.07.2009, 17:34:40 ) *
Spróbuj dopisać
Kod
RewriteBase /

zaraz po aktywacji przepisywania.

Dopisywałem, nawet w różnych innych miejscach i nic.


--------------------
Go to the top of the page
+Quote Post
erix
post 15.07.2009, 13:31:45
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Z mojego DRY:
Kod
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Asmox
post 19.07.2009, 20:17:02
Post #7





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

Ostrzeżenie: (0%)
-----


Dzięki, chyba działa. Może i w końcu coś się sypnie, ale ponieważ tylko Ty mi pomagałeś, dam ci 'punkta'.
P.S.:
Cytat
Z mojego DRY:

Co to jest DRY? mellow.gif

Ten post edytował Asmox 19.07.2009, 20:17:54


--------------------
Go to the top of the page
+Quote Post
erix
post 19.07.2009, 22:18:52
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Zobacz sobie w Wikipedii. tongue.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 12:32