X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Комбинирование ЧПУ и параметров
fahrenheit
fahrenheit
Topic Starter сообщение 12.6.2015, 16:07; Ответить: fahrenheit
Сообщение #1


Здравствуйте уважаемые форумчане.
Столкнулся со следующей проблемой:
Необходимо реализовать на самописном движке каталоги с ЧПУ, но при поиске в том или ином каталоге, должны подключатся GET параметры, которые потом можно обработать в php.
Пример:
/blog (RewriteRule ^blog(/?)+$ index.php?do=blog) - Обычный каталог
/blog?search=строка_поиска

Проблема в том, что скрипт не видит подключенных параметров в данном случае.

В чем мой косяк?


--------------------
Всё о Need For Speed
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
сообщение 12.6.2015, 16:26; Ответить: mmkulikov
Сообщение #2


Цитата(fahrenheit @ 12.6.2015, 14:07) *
В чем мой косяк?

Скорее всего не правильно прописали .htaccess


--------------------
Сдается, обращаться скайп avdesk-it-kmm
VPS от 5€
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fahrenheit
fahrenheit
Topic Starter сообщение 12.6.2015, 16:27; Ответить: fahrenheit
Сообщение #3


mmkulikov, А как тогда прописать, что бы заработал второй вариант?


--------------------
Всё о Need For Speed
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
axfz
axfz
сообщение 12.6.2015, 20:49; Ответить: axfz
Сообщение #4


fahrenheit, не совсем понятно, что вы хотите. Возможно так:
RewriteRule ^blog/?search=(.*)$ index.php?do=blog&search=$1
для запроса /blog/?search=СТРОКА_ПОИСКА

Сообщение отредактировал axfz - 12.6.2015, 20:50


--------------------
ICQ: 973117, Skype: bgvs.stv, E-mail: prosto_lexa@mail.ru
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 13.6.2015, 10:17; Ответить: x64
Сообщение #5


Цитата(fahrenheit @ 12.6.2015, 15:07) *
/blog (RewriteRule ^blog(/?)+$ index.php?do=blog) - Обычный каталог
/blog?search=строка_поиска

Не знаю, что это, но Апач с таким не работает.

Цитата(axfz @ 12.6.2015, 19:49) *
RewriteRule ^blog/?search=(.*)$ index.php?do=blog&search=$1

RewriteRule оперирует путями. Домен, параметры и ведущий слеш туда не попадают.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fahrenheit
fahrenheit
Topic Starter сообщение 13.6.2015, 15:44; Ответить: fahrenheit
Сообщение #6


Разобрался. Параметры такого типа нужно обрабатывать с помощью функции parse_url.

Код
                $filters_param = parse_url($URL, PHP_URL_QUERY); // Масив параметров URL
                $filters_param = explode("&", $filters_param);
                foreach($filters_param as $value){
                    if($value){
                        list($filter_name, $filter_param) = explode("=", $value);
                        $filter_param = preg_replace('/[^\sa-zA-Z0-9А-Яа-яЁёє-їі\,\_\-]/iu', "", $filter_param);
                        $filter_par_array = explode(",", $filter_param);
                        $filter_name = preg_replace('/[^\sa-zA-Z0-9А-Яа-яЁёє-їі\,_\-]/iu', "", $filter_name);
                        $urlf_array[$filter_name] = $filter_par_array;
                    }
                }


--------------------
Всё о Need For Speed
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 13.6.2015, 16:42; Ответить: x64
Сообщение #7


Цитата(fahrenheit @ 13.6.2015, 14:44) *
такого типа

Какого?

Цитата(fahrenheit @ 13.6.2015, 14:44) *
нужно обрабатывать с помощью функции parse_url

:facepalm:
Есть суперглобальный массив $_GET, в котором уже содержатся все пришедшие параметры. Накой нужно ещё раз производить ту же работу ещё раз знает, походу, только ТС.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fahrenheit
fahrenheit
Topic Starter сообщение 13.6.2015, 18:00; Ответить: fahrenheit
Сообщение #8


Цитата(x64 @ 13.6.2015, 15:42) *
Есть суперглобальный массив $_GET, в котором уже содержатся все пришедшие параметры. Накой нужно ещё раз производить ту же работу ещё раз знает, походу, только ТС.

Вы плохо видимо ознакомились с проблемой. Параметры, переданные в ЧПУ (т.е. урле, который уже обрабатывался правилами Rewrite), не передаются в суперглобальный массив $_GET. Иначе я бы сюда попросту не писал.


--------------------
Всё о Need For Speed
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 13.6.2015, 18:02; Ответить: x64
Сообщение #9


Цитата(fahrenheit @ 13.6.2015, 17:00) *
Вы плохо видимо ознакомились с проблемой.

Какой вопрос, такие и ответы.

Если бы все всегда писа́ли, как есть (а не как кажется), проблем было бы меньше.
Существует замечательный флаг QSA, который и указывает на то, что GET-параметры необходимо добавлять, а не заменять.

Цитата(fahrenheit @ 12.6.2015, 15:07) *
Пример:
/blog (RewriteRule ^blog(/?)+$ index.php?do=blog) - Обычный каталог
/blog?search=строка_поиска

Этот, с позволения сказать «пример» — лютый бред, по которому понять, что нужно, невозможно.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Куплю сайт с трафиком тема метаоллообработка, металлоконструкции, станки ЧПУ и тп промышленность.
0 webcent 2473 1.4.2018, 9:21
автор: webcent
Открытая тема (нет новых ответов) Нужна помощь по настройке ЧПУ в Битриксе
0 silvanus 1291 4.6.2014, 9:07
автор: silvanus
Открытая тема (нет новых ответов) Настроить ЧПУ на сайте на престашоп
2 Slen 8966 14.3.2011, 11:34
автор: -LifeUP-
Открытая тема (нет новых ответов) Прикрутить ЧПУ
1 Bilder 2238 15.4.2010, 13:29
автор: isleman


 



RSS Текстовая версия Сейчас: 29.3.2024, 3:41
Дизайн