Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][mod_rewrite] bledne przepisywanie
zakaru
post 12.12.2008, 22:16:00
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.10.2006

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


Witam,
problem polega na przepisywaniu numeru stron.
Mam taki oto kod w mod_rewrite:
  1. RewriteRule article/strona/([1-9])/$ index.php?page=article&action=strona&strona=$1
  2. RewriteRule article/strona/([1-9])$ index.php?page=article&action=strona&strona=$1


problem polega na tym, ze wszystko dziala tylko gdy zmienna strona ma wartosc 1... gdy ma wartosc wieksza od 1 pisze, ze nie ma takiej strony. nie rozumiem za bardzo dlaczego?

dodatkowo mam pytanie, czy jezeli $strona bedzie miala wartosc wieksza od 9 to linki tez beda poprawnie przepisywane?
pozdrawiam!
Go to the top of the page
+Quote Post
erix
post 12.12.2008, 22:34:27
Post #2





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




Sprawdzałem u siebie i regułki są prawidłowo przepisywane.


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

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
zakaru
post 12.12.2008, 22:41:47
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.10.2006

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


hm... a u mnie ni w zab nie chce dzialac. Sytuacja wyglada tak, ze dla wartosci $strona rownej 1 wszystko sie przepisuje, ale gdy wartosc jest wieksza to wywala, ze nie ma takiej strony...
Go to the top of the page
+Quote Post
erix
post 12.12.2008, 22:43:27
Post #4





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 w skrypcie i zobacz, czy wszystko w porządku.

Podejrzewam, że coś mogłeś pokisić właśnie w nim, a nie w regułce.


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

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
zakaru
post 12.12.2008, 22:53:02
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 5.10.2006

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


okej... masz racje tongue.gif
w przekazywaniu zmiennej byl blad winksmiley.jpg

zadaje w sumie jeszcze raz to pytanie:
dodatkowo mam pytanie, czy jezeli $strona bedzie miala wartosc wieksza od 9 to linki tez beda poprawnie przepisywane?
Go to the top of the page
+Quote Post
hiszpanespaniol
post 12.12.2008, 23:22:09
Post #6





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

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


na to drugie pytanie odpowiedź uzyskasz szybciej sprawdzając samemu u siebie smile.gif

myślę, że dla optymalizacji mógłbyś dać coś takiego:

  1. <?php
  2. RewriteRule article/strona/([0-9]+)/?$ index.php?page=article&action=strona&strona=$1
  3. ?>


teraz jest obojętne, czy ktoś wpisze slash na końcu, czy nie wpisze (lub czy będzie w linku) - znak ?.

Dodatkowo cyfry w zmiennej mogą występować wielokrotnie - znak +



Mógłbyś jeszcze przemyśleć sprawę ilości i rozpoznawania zmiennej z tablicy $_GET. Np spójrz na skrypt i zadaj mu/sobie pytanie, czy jeżeli action=strona, to czy page=article. Jeżeli tak, to nie musisz podawać zmiennej page (bo każdy artykuł wyświetla się jako page). Idąc dalej możliwe, że masz taką sytuację, że skoro przekazujesz np strona=12, to to znaczy że chcesz wyświetlić stronę/artykuł o numerze 12. Wtedy w gecie przekazujesz tylko wartość strony, bez konieczności podawania że to ma być article i strona. W takim przypadku reguła rewrite powinna być dodana inna i wyglądać mniej-więcej tak:

  1. <?php
  2. RewriteRule ^strona_([0-9]+)/?$ index.php?strona=$1 [L]
  3. ?>


a generowany link coś na kształt: 

  1. <a href="/strona_12" title="przeczytaj więcej o patentowaniu emotikon">;-) zostało opatentowane</a>


ta druga reguła przepisywania jest podana poglądowo, nie przepisuj dosłownie.

pozdrawiam.

Ten post edytował hiszpanespaniol 12.12.2008, 23:25:16


--------------------
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: 20.07.2025 - 02:12