[Помогите] Правильный редирект старых ссылок на 404

Тема в разделе "OpenCart", создана пользователем aleksin74, 27 янв 2016.

  1. aleksin74

    aleksin74

    Регистрация:
    4 ноя 2012
    Сообщения:
    150
    Симпатии:
    272
    знатоки помогайте.... от старого сайта остались ссылки вида сайт.ru/?jn=igri-dlya- ... так вот, интересует вопрос, как прописать редирект на 404 на ссылки с таким ?jn= параметром?
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Можно попробовать так:
    Код:
    RewriteRule ^(.*)?jn=(.*) /404 [R=301,L]
    И вписать это сразу после
    Код:
    RewriteBase /
     
  3. aleksin74

    aleksin74

    Регистрация:
    4 ноя 2012
    Сообщения:
    150
    Симпатии:
    272
    к сожалению не сработало....
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Довольно часто регулярку для .htaccess не удаётся составить правильно с первой попытки, надо экспериментировать.

    Можно попробовать для начала такие варианты:
    Код:
    RewriteRule (.*)?jn=(.*) /404 [R=301,L]
    Код:
    RewriteRule ?jn=(.*) /404 [R=301,L]
    Код:
    RewriteRule ?jn= /404 [R=301,L]
     
  5. aleksin74

    aleksin74

    Регистрация:
    4 ноя 2012
    Сообщения:
    150
    Симпатии:
    272
    первый вариант - нет эффекта, 2 и 3 - выдает интернат сервер ерор
     
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    А в журнале ошибок ничего нет? Если ничего, то протестируйте ещё раз, предварительно сделав это:
    https://wmasteru.org/threads/Настройки-оптимизации-фичи-статьи-для-opencart.2219/page-7#post-151032

    И вообще, у вас есть страница с алиасом 404? Я туда 404 для примера вписал, а вообще там должен быть реальный адрес вашей страницы 404.
     
  7. aleksin74

    aleksin74

    Регистрация:
    4 ноя 2012
    Сообщения:
    150
    Симпатии:
    272
    прописал в index.php это
    if (isset($request->get['jn'])) {
    header("HTTP/1.0 404 Not Found");
    header('Location: index.php?route=error/not_found');
    }
    на 404 на сайте переходит, но вот при проверке на http://wwhois.ru/response.php показывает HTTP/1.1 302 Found
     
  8. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Ответ указывает на то, что у них этот запрос закеширован и они не пытаются загрузить саму страницу.