Редирект с /?catid=0&id= не работает

  • 15 Ответов
  • 502 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн jeanzzz

Приветствую всех.

Такая проблема: в поисковике появилось несколько дублей страниц вида: МОЙСАЙТ.РУ/?catid=0&id=18
Подскажите, как можно настроить редирект на нужную страницу?  Например, МОЙСАЙТ.РУ/otvety/disk

Стандартный вариант в .htacess не работает:
Redirect 301: /?catid=0&id=18 http:МОЙСАЙТ.РУ/otvety/disk - ноль реакции.

Хотя другие редиректы (без «?catid=0&id=») нормально перенаправляют на указанную страницу.

Re: Редирект с /?catid=0&id= не работает
« Ответ #1 : 05.09.2016, 00:17:48 »
Директива Redirect не работает со строкой запроса. Нужен mod_rewrite:
Код
RewriteEngine on
RewriteCond %{QUERY_STRING} ^catid=0&id=18$ [NC]
RewriteRule .? /otvety/disk [R=301,L,QSD]
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

*

Оффлайн jeanzzz

Re: Редирект с /?catid=0&id= не работает
« Ответ #2 : 05.09.2016, 00:22:24 »
Директива Redirect не работает со строкой запроса. Нужен mod_rewrite:
Код
RewriteEngine on
RewriteCond %{QUERY_STRING} ^catid=0&id=18$ [NC]
RewriteRule .? /otvety/disk [R=301,L,QSD]

Филипп, спасибо. Редирект работает, но теперь перекидывает на несуществующую страницу вида: /otvety/disk?catid=0&id=18 и весь сайт выдаёт 500.
« Последнее редактирование: 05.09.2016, 00:31:13 от jeanzzz »

*

Оффлайн jeanzzz

Re: Редирект с /?catid=0&id= не работает
« Ответ #3 : 05.09.2016, 00:54:37 »
Работает вот такой вариант:

RewriteCond %{QUERY_STRING} ^catid=0&id=18
RewriteRule ^index.php$ http://МОЙСАЙТ.РУ/otvety/disk? [L,R=301]

Вот только можно ли его считать правильным?

Re: Редирект с /?catid=0&id= не работает
« Ответ #4 : 05.09.2016, 00:55:33 »
Флаг QSD точно добавили в конец?
Цитировать
[R=301,L,QSD]
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

*

Оффлайн jeanzzz

Re: Редирект с /?catid=0&id= не работает
« Ответ #5 : 05.09.2016, 00:56:26 »
Флаг QSD точно добавили в конец?

Да. уже написал, что Работает вот такой вариант:

RewriteCond %{QUERY_STRING} ^catid=0&id=18
RewriteRule ^index.php$ http://МОЙСАЙТ.РУ/otvety/disk? [L,R=301]

Можно его считать правильным?

Re: Редирект с /?catid=0&id= не работает
« Ответ #6 : 05.09.2016, 00:57:17 »
1. можно
2. с QSD чище
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

*

Оффлайн jeanzzz

Re: Редирект с /?catid=0&id= не работает
« Ответ #7 : 05.09.2016, 00:59:03 »
1. можно
2. с QSD чище

Филипп, если не сложно, скажите, что значит в этом моём коде «^index.php$». Взял его вообще из другого примера. Может его как-то стоит убрать?

Re: Редирект с /?catid=0&id= не работает
« Ответ #8 : 05.09.2016, 01:00:10 »
Можно убрать, можно оставить -- не имеет значения.
Ставь лайк, если согласен, и делай репост!

  => мои публикации
    => мои работы
      => спектр моих услуг

*

Оффлайн jeanzzz

Re: Редирект с /?catid=0&id= не работает
« Ответ #9 : 05.09.2016, 03:02:50 »
В конечно итоге воспользовался этим вариантом:

RewriteCond %{THE_REQUEST} /\?catid=0&id=18  [NC]
RewriteRule ^ /otvety/disk? [R=301,L]

Перенаправление в браузере происходит. Проверил ответ сервера у яндекса. Всё ок - 301.
« Последнее редактирование: 05.09.2016, 03:15:49 от jeanzzz »

*

Оффлайн Wak

Re: Редирект с /?catid=0&id= не работает
« Ответ #10 : 13.10.2016, 10:48:26 »
У меня тоже каким-то образом поисковики проиндексировали страницы с адресами вида МОЙСАЙТ.РУ/?catid=0&id=xxxx
Только вот беда, что этих страниц сотни. Как узнать, откуда они взялись в индексе и как их массово редиректить? Писать каждую такую страницу в htaccess как-то мне кажется неправильно, тем более, в таких объёмах

*

Оффлайн SeBun

Re: Редирект с /?catid=0&id= не работает
« Ответ #11 : 13.10.2016, 11:03:01 »
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

Оффлайн Wak

Re: Редирект с /?catid=0&id= не работает
« Ответ #12 : 13.10.2016, 22:58:46 »
Ответил вам.
Плагин интересный, но сам он обрабатывать такие ссылки не захотел, а никакой толковой документации по его настройке я не нашёл :-(

*

Оффлайн Matysh

Re: Редирект с /?catid=0&id= не работает
« Ответ #13 : 22.10.2016, 18:01:40 »
Новую тему не буду создавать...
Подскажите правильный редирект для таких целей:
ТОЛЬКО ДЛЯ ГЛАВНОЙ СТРАНИЦЫ перехватывать ЛЮБЫЕ запросы с параметрами, и редиректить их на главную.

То есть,
Код
http://site.ru/?ЧТОНИБУДЬ должен вести на http://site.ru
Но
Код
http://site.ru/test.html?ЧТОНИБУДЬ не должно никуда редиректить.
Заранее спасибо.

*

Оффлайн Wak

Re: Редирект с /?catid=0&id= не работает
« Ответ #14 : 27.10.2016, 16:06:15 »
Новую тему не буду создавать...
Подскажите правильный редирект для таких целей:
ТОЛЬКО ДЛЯ ГЛАВНОЙ СТРАНИЦЫ перехватывать ЛЮБЫЕ запросы с параметрами, и редиректить их на главную.

То есть,
Код
http://site.ru/?ЧТОНИБУДЬ должен вести на http://site.ru
Но
Код
http://site.ru/test.html?ЧТОНИБУДЬ не должно никуда редиректить.
Заранее спасибо.
Пока решал свою проблему, немного разобрался в htaccess. Думаю, в вашем случае поможет следующее правило:
Код
RewriteRule site.ru/?(.*)$ http://site.ru/ [R=301,L]
Но нужно пробовать. Если не работает, попробуйте поэкспериментировать с позицией этой строки (вставьте перед другими правилами)

*

Оффлайн Wak

Re: Редирект с /?catid=0&id= не работает
« Ответ #15 : 27.10.2016, 16:09:42 »
Что касается проблемы с "/?catid=0&id", то мне помогла такая конструкция:
Код
RewriteCond %{QUERY_STRING} catid=0 [NC]
RewriteCond %{QUERY_STRING} &id=(\d+) [NC]
RewriteRule .* /%1/? [R=301,L]