Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Przyjazne adresy dla wyszukiwarki wewnętrznej
Octobus
post 30.01.2012, 09:24:53
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

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


Witam. Nie wiem jak do tego podejść, chyba nie do końca rozumiem istotę działania htaccess. Mam wyszukiwarkę w serwisie oporatą o POST i była reguła:
Cytat
RewriteRule ^szukaj-([0-9]+).html szukaj.php [L]

zmieniłem ją na get żeby móc skonstrułować przyjazne adresy. Nie wiem jednak jak z adresów "brzydkich" zrobić te "ładniejsze", umiem to zrobić w drugą stronę czyli obsłużyć adresy przyjazne poleceniem:
Cytat
RewriteRule ^szukaj-,([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+).html szukaj.php?type=$1&region=$2&state=$3&priceOn=$4&priceOff=$5&txt=$6&getSearch= [L]

To oczywiście przykładowy adres. Problem w tym jak z adresu który mi się generuje teraz w swojej wyszukiwarce:
Cytat
szukaj.html?type=1&region=3&state=3&priceOn=12&priceOff=13&txt=4&getSearch=

zrobić własnie taki:
Cytat
szukaj-,1,2,3,4,5,6.html
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Sephirus
post 30.01.2012, 10:15:22
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Witaj wink.gif

Opcje masz dwie:

1. JS - po prostu zrób funkcję i dołącz do formularza. Funkcja musiałaby przejść po wszystkich polach formularza wyszukiwania i podać w window.location.href odpowiedni "przyjazny" ciąg...

2. PHP/htaccess - czyli raczej to czego potrzebujesz smile.gif

Kod
RewriteRule szukaj.php?type=(.+)&region=(.+)&state=(.+)&priceOn=(.+)&priceOff=(.+)&txt=(.+)&getSearch=(.+) szukaj-$1,$2,$3,$4,$5,$6.html [R]


Wystarczy - daj ją PO zamianie w drugą stronę i powinno działać smile.gif
Po odpaleniu formularza powinno przekierować na "przyjazny" adres wink.gif

Ten post edytował Sephirus 30.01.2012, 10:15:52


--------------------
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...
Go to the top of the page
+Quote Post
Octobus
post 30.01.2012, 10:48:03
Post #3





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

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


Dzieki za odpowiedź ale niestety ten rewrite nie dziala sad.gif nadal mam normalne adresy, nie przepisane ;/
Go to the top of the page
+Quote Post
Sephirus
post 30.01.2012, 10:50:47
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Wrzuć tu swój .htaccess z tymi linijkami wink.gif


--------------------
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...
Go to the top of the page
+Quote Post
Octobus
post 30.01.2012, 12:30:49
Post #5





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

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


Przykładowy adres:
Cytat
szukaj.php?type=1&region=10&state=14&priceOn=10&priceOff=15&txt=Miasto&getSearch=


.htaccess
Cytat
RewriteEngine On
RewriteRule ^szukaj-(.*)-([^-]+)-([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*)-([0-9]*).html szukaj.php?type=$3&region=$4&state=$5&priceOn=$6&priceOff=$7&txt=$2&getSearch= [L]
RewriteRule szukaj.php?type=(.+)&region=(.+)&state=(.+)&priceOn=(.+)&priceOff=(.+)&txt=(.+)&getSearch=(.+) szukaj-$1,$2,$3,$4,$5,$6.html [R]


Ten post edytował Octobus 30.01.2012, 12:31:20
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: 14.06.2025 - 15:30