ЧПУ в поиске по сайту

Статус
В этой теме нельзя размещать новые ответы.

Dovg

Продвинутый новичок
ЧПУ в поиске по сайту

почти все поисковые запросы передаются гетом, т.к. постом передавать не труъ, да и ссылку не скопируешь другу
вопрос следующий:
как по вашему субъективному мнению красивше:
1. /search/?q=%D0%A5%D0%A3%D0%99
2. /search.php?q=%D0%A5%D0%A3%D0%99
3. /search/%D0%A5%D0%A3%D0%99/
4. Постом с редиректом, что-то из серии /search/&searchid=1937411 (самого запроса не видно)
4. еще как-нибудь

--
вопрос касается именно красивости и удобства для пользователя
мне самому нравится первый вариант
 

HraKK

Мудак
Команда форума
3.

Гет в поиске нужно использовать еще и потому что бы не выскакивало при возврате запрос на отправку данных заново.
 

Фанат

oncle terrible
Команда форума
по мне - так все это блажь
яндекс передает методом 2 и не парится.
гугль передает методом 2 и не парится.
а великие юзабилисты с форума похапеклуб ру морщат ум на тему как бы еще извернуться с фичей, которую заметит дай бог один процент посетителей.

-~{}~ 15.11.07 11:58:

при том, что для реализации пунктов, начиная с 3, придется делать всякие извращения помимо простой отправки формы.
 

Dovg

Продвинутый новичок
Фaнaт
сделать редирект при поиске - не такое и большое извращение.
Например на этом форуме его делают ;)
 

Фанат

oncle terrible
Команда форума
ну вот по мне - это кривизна страшная.
юзабилити форума вБуллетин с этими сообщениями "подождите минутку" мне совсем не нравится.
одно то, что после поста редирект не делают - уже кошмар
 

Духовность™

Продвинутый новичок
ИМХО. Всегда следую простому правилу: ЧПУ только для статического содержания.

ВСЕ переменные параметры, будь то GET['query'], GET['page'], GET['limit'] и т.д. - только через QUERY_STRING!

Далее. Допустим, мы сделали форму поиска и решили её усовершенствовать. У нас появилось 20 полей разных - сортировка, в каом разделе искать, в каком статусе искать, по какому автору/нику/полу и т.д. В итоге у нас получается оооооогромный QUERY_STRING. Тогда вариант 3 нормальный адекватный человек реализовывать никогда не будет.

что-то из серии /search/&searchid=1937411
мне почему-та не нравится.

а великие юзабилисты с форума похапеклуб ру морщат ум на тему как бы еще извернуться с фичей, которую заметит дай бог один процент посетителей.
+1
 

sergeykur

Новичок
я не гуру и не профи, я бы сделал так:
обычный поиск: /search/чтото ищем

$URI = (isset($_SERVER['PATH_INFO'])) ? $_SERVER['PATH_INFO'] : '';

$URIelements = array_values(array_filter(explode('/', $URI)));
function detectUTF8($string)
{
return preg_match('%(?:
[\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
|\xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
|\xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
|\xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
|[\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
|\xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)+%xs', $string);
}
if(detectUTF8($URIelements[1]))
$fndtxt=iconv('utf-8','windows-1251',$URIelements[1]);
else
$fndtxt=$URIelements[1];



если поиск по фильтру, ну там дропдовны всякие с уже заложенными параметрами то:
search/1:2:3:4.html
соответственно переменную $URIelements[1] разбираем по признаку : проверяем и используем


пишем там небольшой скрипт который юзает location

у меня все работает таким образом на нескольких проектах

-~{}~ 16.11.09 09:23:

извиняюсь, чтото я на дату обсуждения не глянул.... этож 2г назад было....
 

zerkms

TDD infected
Команда форума
2ой вариант самый правильный.
сэкономленное время потратьте на отладку другой логики.
 

sergeykur

Новичок
вполне нормальная логика, в простоте сила и универсальность
 

vovanium

Новичок
юзаю первый вариант и не парюсь :)
имхо вопросительный знак в url при поиске даже более логично смотрится, чем строка поиска в виде каталога.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху