![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 3 Dołączył: 27.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Potrzebuję stworzyć zasadę, żeby przekierowywało mi żądania do mojego skryptu. Obecnie wygląda to tak: RewriteRule ^zdjecieDuze/(.{1,})/(.{1,})/(.{1,})$ pobierz.php?typ=2&idProducent=$1&symbol=$2 [QSA,L] Co ma powodować, że zdjęcia w formacie: http://strona.pl/zdjecieDuze/15/jakis_kod/obrazek.png jest przekierowywany do skryptu pod adresem pobierz.php?typ=2&idProducent=15&symbol=jakis_kod I do tej pory wszystko ładnie i działa. Ale teraz pojawia się problem, gdy symbol (drugi parametr) zawiera znaki / w różnych ilościach i konfiguracjach. np. aaa/a aaa//a aaa/a/ aaa-a to 4 różne produkty co generuje adresy typu http://strona.pl/zdjecieDuze/15/aaa//a/obrazek.png czy http://strona.pl/zdjecieDuze/15/aaa%2F%2Fa%2F/obrazej.png , i na czym htaccess wszystko sie wywala. czy ktoś może mi pomóc jak zrobić zasadę, żeby to działało? Czyli ma działać tak: ^zdjecieDuze/parametr1/parametr2/parametr3$ gdzie parametr 1 ani parametr 3 na pewno nie zawierają slashy, zresztą, parametr 3 jest ignorowany, natomiast parametr 2 ma różne wartości, na które wielkiego wpływu nie mam. Zaznaczę, że po stronie skryptów konwertuję / na %2F ale to nic nie pomaga, a zamiana ukośnika na cokolwiek innego nie wchodzi w grę, bo to cokolwiek innego też może wystąpić (ostatnio miałem już przypadki %0D albo %0A , a nawet tekstu "\0" itp. i jedyne, z czym w zaden sposób nie mogę sobie poradzić to właśnie te ukośniki, a googlanie za znakiem Ten post edytował MatKus 11.02.2013, 14:28:14 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeśli tylko drugi parametr może zawierać "/" to wykorzystaj to:
Kod RewriteRule ^zdjecieDuze/([^/]+)/(.+)/([^/]+)$ pobierz.php?typ=2&idProducent=$1&symbol=$2 [QSA,L] ![]() ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 3 Dołączył: 27.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
wielkie dzięki, dobry człowieku, już w 95% przypadków uratowałeś mi 4 litery, ale mam jeszcze jeden problem.
otóż gdy na końcu symbolu jest / robi się adres typu: strona.pl/zdjecieDuze/12/jakiescos//obrazek.png chodzi o 2 / obok siebie, które gdzieś po drodze się gubią i robią się jednym / a z kolei url_encode całkiem nie mogę się pozbyć, bo w symbolach mogą też być np. cudzysłowy, ale to sobie zamieniłem na htmlspecialchars i chyba jest OK. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
hmmm ale czekaj czekaj w adresie, który podałeś w tym parametrze drugim jest tylko ten jeden "/" na końcu nie do końca kumam gdzie "był" drugi?
Jak dasz strona.pl/zdjecieDuze/12/jakiescos//obrazek.png to jako parametr 2 daje Ci jakiescos/ czy jakiescos ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 23:15 |