Форум русской поддержки Joomla!® CMS
10.12.2016, 14:52:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 213 раз)
0 Пользователей и 1 Гость смотрят эту тему.
jeanzzz
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 31


« : 04.09.2016, 23:13:09 »

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

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

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

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

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1467


« Ответ #1 : 04.09.2016, 23:17:48 »

Директива Redirect не работает со строкой запроса. Нужен mod_rewrite:
Код:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^catid=0&id=18$ [NC]
RewriteRule .? /otvety/disk [R=301,L,QSD]
Записан
jeanzzz
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 31


« Ответ #2 : 04.09.2016, 23: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.
« Последнее редактирование: 04.09.2016, 23:31:13 от jeanzzz » Записан
jeanzzz
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 31


« Ответ #3 : 04.09.2016, 23:54:37 »

Работает вот такой вариант:

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

Вот только можно ли его считать правильным?
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1467


« Ответ #4 : 04.09.2016, 23:55:33 »

Флаг QSD точно добавили в конец?
Цитировать
[R=301,L,QSD]
Записан
jeanzzz
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 31


« Ответ #5 : 04.09.2016, 23:56:26 »

Флаг QSD точно добавили в конец?

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

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

Можно его считать правильным?
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1467


« Ответ #6 : 04.09.2016, 23:57:17 »

1. можно
2. с QSD чище
Записан
jeanzzz
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 31


« Ответ #7 : 04.09.2016, 23:59:03 »

1. можно
2. с QSD чище

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

Репутация: +121/-4
Offline Offline

Пол: Мужской
Сообщений: 1467


« Ответ #8 : 05.09.2016, 00:00:10 »

Можно убрать, можно оставить -- не имеет значения.
Записан
jeanzzz
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 31


« Ответ #9 : 05.09.2016, 02:02:50 »

В конечно итоге воспользовался этим вариантом:

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

Перенаправление в браузере происходит. Проверил ответ сервера у яндекса. Всё ок - 301.
« Последнее редактирование: 05.09.2016, 02:15:49 от jeanzzz » Записан
Wak
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 58


« Ответ #10 : 13.10.2016, 09:48:26 »

У меня тоже каким-то образом поисковики проиндексировали страницы с адресами вида МОЙСАЙТ.РУ/?catid=0&id=xxxx
Только вот беда, что этих страниц сотни. Как узнать, откуда они взялись в индексе и как их массово редиректить? Писать каждую такую страницу в htaccess как-то мне кажется неправильно, тем более, в таких объёмах
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #11 : 13.10.2016, 10:03:01 »

Ответил вам.
Записан
Wak
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 58


« Ответ #12 : 13.10.2016, 21:58:46 »

Плагин интересный, но сам он обрабатывать такие ссылки не захотел, а никакой толковой документации по его настройке я не нашёл :-(
Записан
Matysh
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #13 : 22.10.2016, 17:01:40 »

Новую тему не буду создавать...
Подскажите правильный редирект для таких целей:
ТОЛЬКО ДЛЯ ГЛАВНОЙ СТРАНИЦЫ перехватывать ЛЮБЫЕ запросы с параметрами, и редиректить их на главную.

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

Репутация: +0/-0
Offline Offline

Сообщений: 58


« Ответ #14 : 27.10.2016, 15:06:15 »

Новую тему не буду создавать...
Подскажите правильный редирект для таких целей:
ТОЛЬКО ДЛЯ ГЛАВНОЙ СТРАНИЦЫ перехватывать ЛЮБЫЕ запросы с параметрами, и редиректить их на главную.

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

Репутация: +0/-0
Offline Offline

Сообщений: 58


« Ответ #15 : 27.10.2016, 15:09:42 »

Что касается проблемы с "/?catid=0&id", то мне помогла такая конструкция:
Код:
RewriteCond %{QUERY_STRING} catid=0 [NC]
RewriteCond %{QUERY_STRING} &id=(\d+) [NC]
RewriteRule .* /%1/? [R=301,L]
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet