shankara

301 редирект добавялет роут в конце

Рекомендуемые сообщения

shankara    10

Добрый день.

При создании редиректа в htaccess перенаправляет на неверную страницу.

Пример: делаю редирект со страницы http://fishekb.ru/catalog/snegokhody-tayga/ на http://fishekb.ru/mototexnika/snegohody/snegohody-russkaya-mehanika/snegoxody-tajga/

Но при переходе на старую страницу открывается страница вида - http://fishekb.ru/mototexnika/snegohody/snegohody-russkaya-mehanika/snegoxody-tajga/?_route_=catalog/snegokhody-tayga/

 

Почему то добавляется ?_route_=catalog/snegokhody-tayga/ в конце url.

В инете рекомендуют делать редирект более сложным правилом:

RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$

RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L]

 

Но если категорий много, это займет много времени. 

Есть ли более быстрое решение для исключения части url,таких как эта  - ?_route_=catalog/snegokhody-tayga/

 

Заранее спасибо за ответы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
shankara    10

Нашел решение в одну строку вместо двух для редиректа:

RewriteRule старая-категория/(.*)$ новая-категория/$1 [R=301,L]

Думал может кто то реализовывал, чтобы ненужный роут автоматически убирался при загрузке страницы, по аналогии с удалением / на конце.

Может кто то подсказать как такое regex составить? Чтобы в конце url часть  ?_route_=catalog/* просто удалялась?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Otvet    371

НЕ надо делать внутренние редиректы в htaccess

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
shankara    10
1 час назад, Otvet сказал:

НЕ надо делать внутренние редиректы в htaccess

Почему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
shankara    10

Не подходит такой редирект -  RewriteRule старая-категория/(.*)$ новая-категория/$1 [R=301,L]

Из за него ссылки на картинки в товарах тоже редиректятся на несуществующие адреса. Убрал пока такие перенаправления.

Может кто то все таки знает, как сделать верный редирект со старых категорий на новые в Opencart, чтобы удалить часть url -  ?_route_=catalog/старая-категрия/ ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Otvet    371
В 18.01.2017 в 22:11, shankara сказал:

Почему?

сами же ответили

потому что применяется абсолютно ко всему, а через месяц может обнаружиться что косячная директива вызвала кучу проблем

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
shankara    10

Сделал таким образом все редиректы:

RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$

RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L]

Теперь все хорошо. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу