Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Blad: "Forbidden ..." po uzyciu znaku % lub " w URL, mod_rewrite - Problem ze znakami % lub " itp
Sajrox
post 18.06.2008, 11:52:50
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


Witam,
Właśnie zmagam się z następującym problemem.
Stosuję mod_rewrite do lepszej obsługi linków jednak przy wstawianiu do adresu URL znakók specjalnych typu " lub % wywala mi bląd:

Forbidden
You don't have permission to ...

Kod w mod_rewrite który odpowiada za zmianę linków wygląda tak:
RewriteRule ^([a-z\+\_]+),([a-z\_0-9]+);(.*) index.php?model=$1&action=$2&$3
gdzie po kolei wyciagam model, akcje i parametry GET.

Gdy w jako adres podam http://localhost/products,all;search=jakis%tekst"
wywala bląd przy czym adres bez znaków " działa bez problemu.
czy ktoś może coś poradzić w tej sprawie ? Czy to wina mod_rewrite questionmark.gif

Co zrobićaby w URl znaki % i " itp były bez problemu obsługiwane.
Go to the top of the page
+Quote Post
sowiq
post 18.06.2008, 12:20:11
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Próbowałeś zrobić tak?
Kod
RewriteRule ^([a-z\+\_\%]+),([a-z\_0-9\%]+);(.*) index.php?model=$1&action=$2&$3

Chodzi mi o dodanie znaku '%' do reguły (nie sprawdzałem na własnej skórze, mogę się mylić).

Mam trochę inne podejście do mod_rewrite. Po pierwsze ma on służyć to robienia ładnych linków, prawda? A czy link typu
Kod
strona/page%20%BFa%BF%F3%B3%E6
jest przejrzysty? Średnio.

Dlatego ja najpierw usuwam znaki specjalne, spacje zamieniam na '_' a polskie litery na zwykle. Dzieki temu uzyskuję link:
Kod
strona/page_zazolc

Wg. mnie trochę lepiej wygląda to od wersji wyżej smile.gif

Ten post edytował sowiq 18.06.2008, 12:21:45
Go to the top of the page
+Quote Post
Sajrox
post 18.06.2008, 12:27:22
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


Zgadza się że ale czasami po prostu potrzebuje znaki specjalne w URL które pobieram następnie zmienną $_GET.
Gdy ktoś szuka czegoś w bazie przez formularz i wpisze w polu input "Sławek" to przekazuje to do GETa i prawidlowo powinno byc
Kod
%22S%C5%82awek%22
ale niestety wszystkie znaki "%" powodują problem. Bez mod_rewrita "%" nie robi problemu już.
Próbowałem dodać do regoły znak "%" tak jak napisałeś ale niestety to nie pomaga sad.gif

Ten post edytował Sajrox 18.06.2008, 12:28:48
Go to the top of the page
+Quote Post
sowiq
post 18.06.2008, 14:43:51
Post #4





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Kod
RewriteRule ^([^,]+),([^;]+);(.*) index.php?model=$1&action=$2&$3


A takie coś?

Znaleziona na: http://www.issociate.de/board/post/274279/...ad_Request.html

http://www.google.com/search?q=mod_rewrite+%2520
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: 6.07.2025 - 06:39