Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mod_rewrite] i znak zapytania
quba
post 2.06.2008, 19:28:13
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 1.10.2005
Skąd: Olesno

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


Nie, to nie kolejne pytanie o QSA smile.gif No nie do końca.
Mam do stworzenia bardzo dziwną regułkę, bowiem:
help.php?mode=view&u=53s10.html chcę przekierować na: help.php?mode=view&u=53&start=10

No i w tym qypadku użycie flagi QSA nie za bardzo wchodzi w grę, bo mam to s10 na koncu, z którego muszę pobrać liczbę. Co mozna w takim przypadku począć?

Dla ścisłości: gdyby nie znak zapytania, to regulka wygladalaby tak:
Rewriterule ^help.php?mode=view&u=([0-9]*)s([0-9]*).html$ help.php?mode=view&u=$1&start=$2


--------------------
Darmowe pozycjonowanie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post 2.06.2008, 19:37:09
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




znak ? jest znakiem specjalnym i jak kazdy znak specjalny musi byc poprzedzony \ czyli \?


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
quba
post 2.06.2008, 20:15:28
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 1.10.2005
Skąd: Olesno

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


Dobrze wiem, że ? jest znakiem specjalnym, ale ukośnik przecież nic w tej sytuacji nie da. smile.gif "?" Nie będzie traktowany jako zwykły string.

Ten post edytował quba 2.06.2008, 20:17:48


--------------------
Darmowe pozycjonowanie
Go to the top of the page
+Quote Post
nospor
post 2.06.2008, 20:17:34
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ukosnik powoduje, iz w wyrazeniu regularnym znak ? traktowany jest jako zwykly znak zapytania a nie jako znak specjalny.
Tobie przeciez chodzi by znak zapytania byl traktowany jako zwykly znak - daj wiec \


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
quba
post 2.06.2008, 20:23:39
Post #5





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 1.10.2005
Skąd: Olesno

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


No ale ile razy mam powtarzać, że w tej sytuacji to nie zadziała?
Stwórz sobie regułke:
Rewriterule ^help.php\?mode=view$ ./plik.php

A następnie wpisz help.php?mode=view w przeglądarke. smile.gif No a po tej czynności usun \?mode=view. Zobaczysz ze za pierwszym razem wyrażenie wcale nie zostało zinterpretowane i nie wyplulo 404.


--------------------
Darmowe pozycjonowanie
Go to the top of the page
+Quote Post
nospor
post 2.06.2008, 20:42:00
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Dla ścisłości: gdyby nie znak zapytania
Sadzilem na podstawie tego ze masz problem ze znakiem specjalnym ? smile.gif

Skoro nie to przepraszam.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
quba
post 2.06.2008, 20:47:06
Post #7





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 1.10.2005
Skąd: Olesno

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


no ale właśnie ten znak zapytania sprawia, że nie działa wyrażenie regularne w regułce. Generalnie jest flaga QSA, która przekazuje wartości po znaku zapytania poprzedzając je znakiem &, jednak w moim przypadku to się nie uda, gdyż w tych przekazywanych wartościach mam daną, którą muszę pobrać.


--------------------
Darmowe pozycjonowanie
Go to the top of the page
+Quote Post
pieto
post 4.06.2008, 11:12:28
Post #8





Grupa: Zarejestrowani
Postów: 227
Pomógł: 1
Dołączył: 12.05.2002
Skąd: gdańsk

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


No właśnie - ten sam problem, udało Ci się to przejść ?


--------------------
Materiały i Wypracowania znajdziesz na zgapa.pl i
Encyklopedii Zgapedia
Jedyny przedawkowany portal motoryzacyjny to autoholik.pl
Go to the top of the page
+Quote Post
tommy4
post 4.06.2008, 12:21:43
Post #9





Grupa: Zarejestrowani
Postów: 288
Pomógł: 12
Dołączył: 2.12.2005

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


RewriteCond %{QUERY_STRING}
RewriteRule ^mode=view&u=([0-9]*)s([0-9]*).html$ help.php?mode=view&u=$1&start=$2

coś takiego?
Go to the top of the page
+Quote Post
hateman
post 4.06.2008, 18:08:08
Post #10





Grupa: Zarejestrowani
Postów: 86
Pomógł: 18
Dołączył: 28.04.2008
Skąd: Poznań

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


Ja bym to zrobił bez Rewrite skoro z nim masz problemy

Kod
$array = explode("s", $_GET['u']);
$_GET['u'] = $array[0];
$_GET['start'] = $array[1];


Ten post edytował hateman 4.06.2008, 18:08:31
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: 13.08.2025 - 23:53