Автор Тема: Не работает 301 редирект. Prestashop 1.6.1.1  (Прочитано 1389 раз)

01 Февраль 2016, 16:25:56
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день, помогите, пожалуйста решить проблему.

Нужен 301 редирект, со старых адресов сайта на новые, домен тот же.

Версия 1.6.1.1.

Пробовали несколько вариантов:

Redirect 301 /index.php?categoryID=56 http://домен.com.ua/35-srochnaya-prodazha

и

rewriterule ^index.php?categoryID=56(.*)$ http://домен.com.ua/35-srochnaya-prodazha$1 [r=301,nc]


и

Options +FollowSymlinks
RewriteEngine on
rewriterule ^index.php?categoryID=56(.*)$ http://домен.com.ua/35-srochnaya-prodazha$1 [r=301,L]

Не работает.
Последний вообще привёл к ошибке 500.

Моя догадка, что другие правила которые преста прописывает в htaccess как-то конфликтуют с этим.
В чём может быть проблема?

Признателен за любую помощь.
01 Февраль 2016, 17:04:39
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Веб сервер Apache?
Добавляйте правила стат. редиректа в самом верху файла htaccess, перед общими правилами.
01 Февраль 2016, 17:12:00
Ответ #2
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Веб сервер Apache?
Добавляйте правила стат. редиректа в самом верху файла htaccess, перед общими правилами.

Благодарю за отклик! Да, поставил в самом начале файла htaccess: 

Redirect 301 /index.php?categoryID=38 http://moredobra.com.ua/35-srochnaya-prodazha

При переходе по старой ссылке открылась главная, и в строке URL:

http://moredobra.com.ua/?categoryID=38%3FcategoryID%3D38
01 Февраль 2016, 17:34:10
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Проблема в "index.php?categoryID=3"
При направлении на index.php престашоп обрабатывает запросы по правилам чпу. Нужно исключить или index.php, или в правилах чпу запрсы с "categoryID".
01 Февраль 2016, 17:51:28
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Redirect 301 /categoryID=38 http://moredobra.com.ua/35-srochnaya-prodazhaтак будет работать.
01 Февраль 2016, 18:11:43
Ответ #5
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Redirect 301 /categoryID=38 http://moredobra.com.ua/35-srochnaya-prodazhaтак будет работать.

Спасибо за вариант. Результат тот же, к сожалению.
01 Февраль 2016, 18:12:45
Ответ #6
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Проблема в "index.php?categoryID=3"
При направлении на index.php престашоп обрабатывает запросы по правилам чпу. Нужно исключить или index.php, или в правилах чпу запрсы с "categoryID".

Если я правильно понял, попробовали вот так:

RewriteEngine On
RewriteRule ^categoryID=38$ /35-srochnaya-prodazha [R=301,L]

и

RedirectMatch 301 (.*)categoryID=38$ /35-srochnaya-prodazha/$1

без результата.

01 Февраль 2016, 20:15:02
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
RewriteRule ^categoryID=38$ /35-srochnaya-prodazha [R=301,L]RewriteRule не обрабатывает аргументы, которые переданы в скрипт. Этим занимается RewriteCond.
Поищите в яндексе как составлять правила редиректа.
02 Февраль 2016, 14:01:42
Ответ #8
  • Новичок
  • *
  • Сообщений: 5
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
RewriteRule ^categoryID=38$ /35-srochnaya-prodazha [R=301,L]RewriteRule не обрабатывает аргументы, которые переданы в скрипт. Этим занимается RewriteCond.
Поищите в яндексе как составлять правила редиректа.

Благодарю за наводку на Rewritecond!

Ни с чем не сравнимое ощущение, когда неведомая хрень, после чтения мануала по синтаксису превращается в понятную конструкцию!

Проблема решена так:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^categoryID=38$ [NC]
RewriteRule ^(.*)$ /35-srochnaya-prodazha? [R=301,NC,L]