![]() |
![]() |
![]()
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 (IMG:http://forum.php.pl/style_emoticons/default/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 |
|
|
![]() |
![]()
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 \?
|
|
|
![]()
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. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) "?" Nie będzie traktowany jako zwykły string.
Ten post edytował quba 2.06.2008, 20:17:48 |
|
|
![]()
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 \ |
|
|
![]()
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. (IMG:http://forum.php.pl/style_emoticons/default/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. |
|
|
![]()
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 ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Skoro nie to przepraszam. |
|
|
![]()
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ć.
|
|
|
![]()
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ść ?
|
|
|
![]()
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? |
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 13:05 |