Перейти к содержимому

Фотография
- - - - -

Пытаюсь составить правило для mod_rewrite.


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
В этой теме нет ответов

#1 Necrosss

Necrosss

    Прохожий

    Топикстартер
  • Новичок
  • 0
    1 сообщ.

Отправлено 29 Май 2016 в 04:46

Работаю с чем-то вроде простенького интернет-магазина. Как у любого магазина у него есть сортировка товаров по разным параметрам. (По цене, по материалу, по длине/ширине и т.д.)
Реализовать это в виде обычных 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.

Буду рад если кто-нибудь подскажет как можно починить.


  • 0

Спонсор



Похожие темы Свернуть

Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей