За последние 24 часа нас посетили 22727 программистов и 1256 роботов. Сейчас ищут 742 программиста ...

htaccess RewriteRule подскажите что не так

Тема в разделе "Регулярные выражения", создана пользователем Ромарио2, 27 мар 2022.

Метки:
  1. Ромарио2

    Ромарио2 Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    6
    Симпатии:
    0
    Делаю правило RewriteRule:
    RewriteRule ^/goods.php?(.*)=(.*)$ /goods.php?idg=$2

    Но оно не пашет.
    Смысл что бы я мог любой первый метатег заменить на нужный.
    Вроде все правильно но не пашет
     
  2. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Где начинается строка, которая должна получаться? Скобок 2 пары, а переменная одна и сразу $2. ????
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.794
    Симпатии:
    650
    На входе под маски правил подставляются только пути. А вопросительный знак в регулярках – вообще спец. символ.
    --- Добавлено ---
    В смысле GET-параметр?
     
  4. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    RewriteRule ^/goods.php?(.*)=(.*)$ /goods.php?$1=$2
     
  5. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Скажи, какую задачу ты решаешь. Тогда можно будет найти решение.
     
  6. Ромарио2

    Ромарио2 Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    6
    Симпатии:
    0
    Вот допустим ссылка:
    https://site.ru/goods.php?idgoods=13531&utm1=123&utm2=345

    Вот я хотел бы сделать, что бы idgoods отлавливался, даже если его будут по другому называть, допустим:
    https://site.ru/goods.php?gid=13531&utm1=123&utm2=345

    Но idgoods может быть любым другим. Или даже всегда по разному.
    --- Добавлено ---
    Если я так сделаю, то получается я возьму имя метатега и его значение и передам также как и было.
    А я бы хотел название гет параметра на выходе сделать всегда одинаковым, даже если в изначальной строке он будет меняться (в браузере)
    Т.е. первый гет параметр из ссылки, всегда должен передаваться в постоянный парамент с именем idgoods
    Поэтому я и передал только $2 т.к. только это значение первого гет параметра меня интересует.
     
  7. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Может так?
    (.*) goods.php?idgoods=$1
     
  8. Ромарио2

    Ромарио2 Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    6
    Симпатии:
    0
    Если я так сделаю, то получается я возьму имя метатега и его значение и передам также как и было.
    А я бы хотел название гет параметра на выходе сделать всегда одинаковым, даже если в изначальной строке он будет меняться (в браузере)
    Т.е. первый гет параметр из ссылки, всегда должен передаваться в постоянный парамент с именем idgoods
    Поэтому я и передал только ;2
    Я не пробовал, но думаю что не сработает. Если я правильно понимаю, то в данном коде мы берем всю ссылку и передаем ее в идентификатор $1
    А мне нужно конкретный
    У меня за идентификатором закреплен id страницы, если его не получить, будет error404
    Поэтому и смысл в том, что бы первый гет взять и передать именно в нужный мне гет с определенным именем
     
  9. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    Ты наверно прав. Попробуй воспользоваться вот этим инструментом. https://regex101.com/
    Здесь можно подставлять регулярное выражение и проверять его на соответствие со строкой. Может быть это поможет.
     
  10. Ромарио2

    Ромарио2 Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    6
    Симпатии:
    0
    Спасибо. Попробую