|
|
|
Necrosss |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 29.5.2016 Репутация: нет Всего: нет |
Работаю с чем-то вроде простенького интернет-магазина. Как у любого магазина у него есть сортировка товаров по разным параметрам. (По цене, по материалу, по длине/ширине и т.д.)
Реализовать это в виде обычных get-переменных, прописываемых в адресной строке было не сложно. Проблема случилась когда решил перевести это всё в ЧПУ. Написать всё это ОДНИМ правилом (то есть запихнуть все параметры в один RewriteRule) не вариант. Потому что в таком случае оно сработает только если в адрес будут вбиты все переменные сразу. (а если кто-то захочет поискать только по цене или только по длине ?) Тогда нужно много RewriteRule для каждого параметра по отдельности. Написал что-то типа вот этого: RewriteRule ^price_([0-9]+)/ &price=$1 RewriteRule ^material_(.*)/ &material=$1 RewriteRule ^length_([0-9]+)/ &length=$1 RewriteRule ^width_([0-9]+)/ &width=$1 И главное правило: RewriteRule (.*) index.php?address=qwerty$1 [QSA,L] Файл index.php содержит следующую запись: <?php print_r($_GET); ?> В браузере вбил следующий адрес: ht tp://localhost/test/price_1000/material_дерево/length_10/width_5/ Итак на выходе получил: Array ( [address] => qwerty [price] => 1000/material_дерево/length_10/width_5/ ) По сути сработало только првило для price. Буду рад если кто-нибудь подскажет как можно починить. Это сообщение отредактировал(а) Necrosss - 29.5.2016, 03:38 |
|||
|
||||
ksnk |
|
|||
прохожий Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 5 Всего: 386 |
Несколькими способами
-- отказаться от htacess. оставить там что-то вроде
и в index уже разбираться с прилетевшим REQUEST_URI Если сайт, внезапно, будет перенесен на площадку с nginx -навороченный htaccess станет большой проблемой. Если список свойств внезапно измениться, или цена будет в виде диапазона - нужно будет править не только в исходниках, но и в htaccess. -- понять как работает htaccess. RewriteRule XXX YYY означает, что регулярка XXX применяется к прилетевшему URI, после чего URI заменяется на YYY, от результата отрезается часть после ? и все повторятся еще и еще раз, пока замены не закончатся. Итого осталось только понять, почему RewriteRule ^price_([0-9]+)/ &price=$1 заменил прилетевший URI именно на тот адрес, который получился. Скорее всего, понадобится еще почитать про флаг QSA., понять куда делась начальная и конечная часть URI после замены -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
Forstrot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.1.2017 Репутация: нет Всего: нет |
Прошу прощение за легкий оффтоп, но тема отчасти соответствует и моему вопросу: какую систему безопасности и управления инфраструктурой вы посоветуете?
Работа предполагается немалая, связана с отдельно взятым производством. По перечню необходимых работ, приблизительный список здесь: https://www.konsom.ru/ Буду рад любой информации (как по системе, так и по рекомендации специалистов). |
|||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |