301 редирект opencart
Рабочий вариант сделать 301 redirect через htaccess в opencart. Работает на ура!
RewriteCond %{REQUEST_URI} ^/old-url.html$
RewriteRule ^.*$ http://opencart-3038.loc/new-url [R=301,L]
Еще один вариант, который работает для Opencart, но его написание чуточку осложняется словом _route_=
RewriteCond %{QUERY_STRING} ^_route_=old-url2.html$
RewriteRule ^(.*)$ http://opencart-3038.loc/new-url2? [R=301,L]
Стандартный редирект с одной страницы на другую в OpenCart НЕ работает. Это вот такой:
Redirect 301 /old-url http://opencart-3038.loc/new-url
# SEO URL Settings RewriteEngine On # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ # ---------------------------------------- # 301 Redirects . Begin # -- # Правила редиректа прописываются в самом начале правил перезаписи # -- # Вариант редиректа в одну строку (который обычно не работает в OpenCart) # Redirect 301 /old-url0 http://opencart-3038.loc/new-url0 # -- # Он "заработает", если добавить в конце вопросительный знак - если canonical есть то сгодится. Зато в одну строку. Redirect 301 /old-url0 http://opencart-3038.loc/new-url0? # -- # Рабочий вариант редиректа №1 RewriteCond %{REQUEST_URI} ^/old-url.html$ RewriteRule ^.*$ http://opencart-3038.loc/new-url [R=301,L] # -- # Рабочий вариант редиректа №2 # Обязательно ставить вопросительный знак в конце нового адреса. Иначе вечный редирект RewriteCond %{QUERY_STRING} ^_route_=old-url2.html$ RewriteRule ^(.*)$ http://opencart-3038.loc/new-url2? [R=301,L] # 301 Redirects . End # ---------------------------------------- RewriteBase / RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L] RewriteRule ^system/storage/(.*) 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]