Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]RewriteRule zmienne zmienne i ich wartości
!*!
post
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Wiem, pokrecony tytuł, ale mam taki problem:

adres strony to:

Kod
www.domena.pl/index.php?zmienna1=wartosc1


Czsami jest też taki adres:

Kod
www.domena.pl/index.php?zmienna1=wartosc2


albo

Kod
www.domena.pl/index.php?zmienna2=wartosc2



I teraz jak mam to poucinać w RewriteRule, tak aby nic się nie gryzło.

Kod
([a-z0-9]+),([a-z0-9]+)$ /index.php?$1=$2


Tylko jak mogę zrobić jeśli w adresie jest więcej niż 1 zmienna, za każdym razem mam dopisać to w RR?

A co jeśli ktoś wpisze zły adres to wyskoczy błąd braku sterony, teraz mam że jest przekierowany przez php do strony z informacją... można to jakoś zrobić z RR?
Go to the top of the page
+Quote Post
Lion_87
post
Post #2





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


No niestety chyba musisz sie bawić i wpisywać wszystkie możliwości.

A z błedami to:
Kod
# dla błędu 404
ErrorDocument 404 /nieznalezionopliku.html

# dla błędu 500
ErrorDocument 500 /bledy/500.html

    * 401 - Authorization Required (wymagana autoryzacja)
    * 400 - Bad request (niepoprawne żądanie)
    * 403 - Forbidden (dostęp zabroniony)
    * 500 - Internal Server Error (wewnętrzny błąd serwera)
    * 404 - File not found (nie znaleziono pliku)


lecz nie wiem czy o to Ci chodzilo.

Ten post edytował Lion_87 4.01.2009, 14:42:43
Go to the top of the page
+Quote Post
!*!
post
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Wiem jak działają błedy, ale chodziło mi o błedy rodzaju... em dam to na przykładzie:

includuje pliki:

  1. <?php
  2. if(zabezpieczgetpost(asd == 'start') { include('go/startmenu.php');}
  3. else if(zabezpieczgetpost(asd == 'mail') { include('go/mail.php');}
  4. else if(zabezpieczgetpost(asd == "poczekalnia") { include("go/poczekalnia/poczekalnia.php");}
  5. else if(!isset(asd)) { include("go/startmenu.php");}
  6. else {  header('Location: http://'.$_SERVER['SERVER_NAME'].'/'start-lista);}
  7. ?>


Czyli jeśli w asd nie występowało "start", mail itp. to zostało przekierowanie na adres poątkowy, a teraz po zastosowaniu RR wyskakuje błąd 404 ...
Go to the top of the page
+Quote Post
zulus
post
Post #4





Grupa: Zarejestrowani
Postów: 225
Pomógł: 18
Dołączył: 30.06.2003
Skąd: Wrocław

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


W tym wypadku nie widzę potrzeby używania rewrite rule jeżeli masz url postaci plik.php?zmienna=wartość . W tym wypadku pobierasz $_GET['zmienna'] i sprawdzasz w plik.php, jeżeli chcesz tylko zmieniać nazwę pliku przy pomocy rewrite rule to użyj:

Kod
RewriteRule ^staryplik.php    nowyplik.php   [QSA]


Osobiście używam takiej kostrukcji:
Kod
RewriteRule ^(.*?)$ index.php5?argStr=$1    [QSA]


I parsuje w index.php cały URL który mam w $_GET['argStr']
Go to the top of the page
+Quote Post
!*!
post
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Tak tylko widzisz, czasami link choć nie musi wyglada w takiej postaci:

Kod
plik.php?zmienna=wartość&aaa=111&vvv=232

lub

plik.php?zmienna=wartość&aaa=111&vvv=232&asd=34342&dfdf=1


lub jeszcze jakiejś innej, i co wtedy? Właśnie nie wime jak to optymalnie napisać aby nie było takiego burdleu w urlu.
Go to the top of the page
+Quote Post
zulus
post
Post #6





Grupa: Zarejestrowani
Postów: 225
Pomógł: 18
Dołączył: 30.06.2003
Skąd: Wrocław

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


Zapisuj jako zmienna/wartość/zmienna2/wartość2

potem argStr przy pomocy explode dzielisz przez '/' i łączysz w tablicę $args['zmienna'] = wartość;

dzięki temu nie pojawia Ci się url typu http://adres.pl/plik.php?zmienna=wartość tylko:
http://adres.pl/zmienna/wartość/zmienna/wartość

Niektóre wyszukiwarki wciąż mają problemy z url'ami ze zmiennymi poza tym ładniej to wygląda (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 27.09.2025 - 01:10