Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> rewrite rule, numer parametru wiekszy niz 9
wojto
post
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 29.06.2003
Skąd: Warszawa

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


witam,
mam podany kod w pliku .htaccess:
Kod
RewriteRule ^szukaj,(.*),(.*),([0-9]+),([0-9]+),(.*),(.*),(.*),(.*),(.*),([0-9]+).html+ szukaj.php?sz_slowo_kluczowe=$1&sz_nazwa=$2&sz_branza=$3&sz_wojewodztwo=$4&sz_powiat=$5
&sz_miejscowosc=$6&sz_telefon=$7&sz_ulica=$8&sz_nr_domu=$9&strona=$10
jak widac na zalaczonym obrazku liczba parametrow wynosi 10

W czym problem.
Nie przesyla parametru $10. Zamiast niego dostaje wartosc parametru $1 plus 0
Czy jest mozliwosc, aby odczytac wartosc parametru nr 10?

W dokumentacji jest napisane cos takiego:
Cytat
"Back-references are $N  (N=0..9) identifiers which will be replaced
by the contents of the Nth group of the matched Pattern."
czyli parametry moga byc od 0 do 9
Jak uzyskac dostep do parametru $0, ktora czesc linka to bedzie?

gdzies znalazlem inny cytat, zeby:
Cytat
use multiple RewriteRule statements chained together [C] if you need
more.
ale nie wiem co da to [C]

z gory dzieki za pomoc.

Ten post edytował wojto 23.10.2004, 12:48:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bendi
post
Post #2





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


2 sprawy:

- gdzie w tym kodzie nalezy dodac QSA, bo z tego co mi sie wydaje aby regulka byla skopiowana trzeba to dopisac
- zamiast pisac ([^,\.]+), mozna napisac (.*?),. Wywolanie ze znakiem zapytania spowoduje wlalczenie non-greedy (niby roznica nieznaczna, ale o ile czytelniejsza - pobierz wszystko do pierwszego napotkanego przecinka i po sprawie), wiecej na ten temat w drugiej czesci mojego arta o regexpach

Wtedy cala regulka przyjmie postac:
Kod
RewriteEngine on
RewriteRule (.*?),(.*) p1=$2 [C]
RewriteRule (.*?),(.*) $1&p2=$2 [C]
RewriteRule (.*?),(.*) $1&p3=$2 [C]
RewriteRule (.*?),(.*) $1&p4=$2 [C]
RewriteRule (.*?),(.*) $1&p5=$2 [C]
RewriteRule (.*?),(.*) $1&p6=$2 [C]
RewriteRule (.*?),(.*) $1&p7=$2 [C]
RewriteRule (.*?),(.*) $1&p8=$2 [C]
RewriteRule (.*?),(.*) $1&p9=$2 [C]
RewriteRule (.*?),(.*) $1&p10=$2 [C]
RewriteRule (.*?)\.html szukaj.php?$1

Prawda ze ladniej ;>

Ten post edytował bendi 26.10.2004, 08:45:44
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 11.10.2025 - 09:14