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



 

Здравствуйте, гость ( Вход | Регистрация )

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


Участник
***

Группа: User
Сообщений: 117
Регистрация: 29.4.2009
Из: Украина
Поблагодарили: 2 раза
Репутация:   2  


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

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

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


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


Старожил
******

Группа: Active User
Сообщений: 2031
Регистрация: 21.9.2012
Из: СССР
Поблагодарили: 587 раз
Репутация:   68  


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

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


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


Участник
***

Группа: User
Сообщений: 117
Регистрация: 29.4.2009
Из: Украина
Поблагодарили: 2 раза
Репутация:   2  


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


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


Новичок
*

Группа: User
Сообщений: 39
Регистрация: 29.5.2015
Поблагодарили: 17 раз
Репутация:   6  


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


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3429
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2749 раз
Репутация:   289  


Цитата(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


Участник
***

Группа: User
Сообщений: 117
Регистрация: 29.4.2009
Из: Украина
Поблагодарили: 2 раза
Репутация:   2  


Разобрался. Параметры такого типа нужно обрабатывать с помощью функции 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


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3429
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2749 раз
Репутация:   289  


Цитата(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


Участник
***

Группа: User
Сообщений: 117
Регистрация: 29.4.2009
Из: Украина
Поблагодарили: 2 раза
Репутация:   2  


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

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


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


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3429
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2749 раз
Репутация:   289  


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

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

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

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

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


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Прикрутить ЧПУ
1 Bilder 1176 15.4.2010, 13:29
автор: isleman


 



RSS Текстовая версия Сейчас: 17.12.2017, 14:37
Дизайн