Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazywanie zmiennych w url-u
Forum PHP.pl > Forum > PHP
tomaszh
Zrobiłem przekierowanie za pomocą mod_rewrite.
W .htaccess mam:

Options FollowSymLinks
RewriteEngine On
RewriteRule ^main,([^-]+),([^-]+)?\.html index.php?a=$1&b=$2

Gdy wpisuje:
http://main,1,3.html przekierowuje mi na index wraz ze zmiennymi a i b i wszystko jest ok.

Problem jest gdybym chciał dodać urla dodatkową zmienną np. c, czyli http://main,1,3.html?c=ok. Niestety jej nie przekazuje do index.php.
Gdzie robie błąd?
rolnix
Nie mogłoby być

Kod
RewriteRule ^main,([^-]+),([^-]+)?\.html?c=([^-]+) index.php?a=$1&b=$2&c=$3


Uhm?
tomaszh
Niestety, taki zapis:

Kod
RewriteRule ^main,([^-]+),([^-]+)?\.html?c=([^-]+) index.php?a=$1&b=$2&c=$3


nic nie dał. Wywala mi błąd 404.

Poza tym jakbym chciał przekazać zmienne z formularza poprzez GET to musiałbym tworzyć regułę z kilkunastoma zmiennymi.

Chodziło by mi bardziej żeby działało to poprzez dopisanie do url-a, głównie ze względu na zmienne z formularza.
rolnix
H.m, rozumiem... być może jest jakiś opcja albo hack do mod_rewrite'a, który pociągnąłby za sobą wszystkie zmienne z get'a. Poszukaj =)
dr_bonzo
Nie jestem biegly w Rewrite_mod'dzie ani w regexpach, ale wydaje mi sie zeby to zrobic tak:
wpisujesz adres
main,x,y.html?c=blabla
i masz rule:
RewriteRule ^main,([^-]+),([^-]+)?\.html index.php?a=$1&b=$2
(i to dziala)
teraz trzeba by wyszukac wszsytkiego po ".html" (jak? nie wiem) i dopisac to do "index.php?a=$1&b=$2" --> "index.php?a=$1&b=$2&$3"
przeniesie ci to wszystkie zmienne GET.
tomaszh
Hmmm, jeśli nieczego nie wymyśle to trzeba będzie tak zrobić.

Gdy stosuje:
  1. <?php
  2. echo $_SERVER[&#092;"REQUEST_URI\"]\";
  3. ?>


pokazuje adres z przeglądarki http://main,1,3.html?c=aaa a nie rzeczywisty index.php?a=...&b=... więc można jakoś wyciągnąć zmienne.

Z GET jednak nie będzie problemu, ale jak przekazać zmienne POST?

Ciekaw jestem jak jest to rozwiązane na stronach z wykorzystaniem mod_rewrite. Być może w momencie przekazania zmiennych za pomocą GET lub POST nie używa się przekierowania.
rolnix
rewrite nie ma nic wspólnego z post, on tylko przekierowuje ładnie wyglądające linki...
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.