#apache #.htaccess #redirect #opencart
#apache #.htaccess #перенаправление #opencart
Вопрос:
Я использую OpenCart 1.5.6 и недавно перенес свой магазин из поддомена в основной домен. Теперь я пытаюсь перенаправить некоторые из старых статических страниц категорий на фактические страницы категорий / продуктов opencart.
Вот моя строка .htaccess:
Redirect 301 /old-category.html http://www.mydomain.com/my-new-category
Это правило отлично работает для большинства моих URL-адресов, но для некоторых из них мне нужно:
http://www.mydomain.com/my-new-category?route=old-category.html
Некоторые люди предлагали вместо этого использовать RewriteRule или добавить знак вопроса в конце, я пробовал все это, но ничего не работает!
Я также попытался ввести свои правила до и после следующего блока:
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
У кого-нибудь есть идеи?
Ответ №1:
Это должно сработать:
RewriteEngine On
RewriteRule ^old-category.html$ http://www.mydomain.com/my-new-category [L,NC,R=301]
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^(. )$ index.php?_route_=$1 [L,QSA]
Обязательно протестируйте это в новом браузере, чтобы избежать проблем с кэшированием 301.
Комментарии:
1. Большое вам спасибо, сработало как шарм: D могу я спросить, что именно было не так?
2. Пожалуйста. правило 301 должно предшествовать другим правилам, и вам необходимо перезапустить браузер (или очистить кэш), чтобы избежать старого кэша 301 в браузере.
Ответ №2:
Я надеюсь, что это сработает для вас
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
Redirect 301 /old-category.html http://www.example.com/my-new-category?
Ответ №3:
У меня проблема с перенаправлением 301 с большинства страниц категорий / продуктов с моего старого сайта.
Например, я сделал перенаправление 301 со старой страницы
/shop/dekorativnye-plenki/ category/29-derevo?route= product/categoryamp;path=25_29
на новую страницу
/dekorativnye-plenki/derevo
Но sever перенаправляет меня на несуществующую страницу
/dekorativnye-plenki/derevo?_ route_=shop/dekorativnye- plenki/category/29-derevo
Комментарии:
1. Вы должны опубликовать это как свой собственный поток. Не в качестве комментария здесь.