Подмена URL в HTACCESS по REQUEST параметрам

105
07 октября 2019, 11:30

Пример на js Наша ссылка для примера: http://example.com/name-razdel/?module=shop&action=search&cat_id=0&a=&pr1=0&pr2=100&brand%5B%5D=22

var url = window.location.href;
var partUrl = url.split('&brand%5B%5D=');
if (partUrl[1] == "19") window.history.pushState(null, null, "/" + url.split('/')[3] + "/ctec-happy-hair-braziliya/"); 
if (partUrl[1] == "20") window.history.pushState(null, null, "/" + url.split('/')[3] + "/felps-profissional-braziliya/"); 

То есть: 1. Получаем URL_REQUEST 2. Разбиваем строку по бренду 3. При выполнении условия меняем подменяем url

Суть в том, что через JS это палевно, url меняется после отдачи страницы, а не до.

UPD

Вот то, что я пробовал и и многое другое, мой ответ тому Ипанатию, только тут в нормальном отображении :-)

Я попросил помощи в решении с htaccess, потому что я уже в нём всё перепробовал.

Вот пример:

RewriteCond %{REQUEST_URI} ^/keratin$
RewriteCond %{QUERY_STRING} ^brand%5B%5D=19$
RewriteRule ^(.*)$ /keratin/ctec-happy-hair-braziliya/? [R=301,L]

Но это не помогает сделать редирект с такого урл с гет параметрами:

/keratin/?module=shop&action=search&cat_id=0&a=&pr1=0&pr2=0&brand%5B%5D=19

На страницу брэнда

/keratin/ctec-happy-hair-braziliya/
Answer 1

Для начала следует прочесть вот этот классический друд.

После этого живо себе представить себе два условных квадратика - сервер и браузер. Внутри серверного квадратика пририсовать маленький квадратик htaccess, и после этого попытаться расположить на этой схеме свой алгоритм,

  1. Получаем URL_REQUEST 2. Разбиваем строку по бренду 3. При выполнении условия меняем подменяем url

После того как это не получится, придется придумать что-то другое:

  1. (на сервере, в РНР скрипте) получаем URL_REQUEST
  2. разбиваем строку по бренду, формируем новый урл
  3. Говорим браузеру, чтобы он запросил новый урл
  4. браузер запрашивает у сервера новый урл
  5. на сервере htaccess превращает новый урл обратно в старый, добавляя какой-нибудь параметр, который скажет РНР что на этот раз надо не делать редирект а обработать запрос
  6. РНР генерирует страницу
READ ALSO
Присвоить переменную

Присвоить переменную

мне нужно вот этому <input id="4"type="text" name="numstat"> присвоить значение вот этого $PoleCauseID

110
Как передать параметр к get-запросу

Как передать параметр к get-запросу

Собственно, у меня есть код, который должен вернуть кол-во юзеров, состоящих в группах в определенном daterangeКак мне создать параметры start_date...

133
Не находит подключенный класс

Не находит подключенный класс

Выкидывает ошибку:

110