Задать вопрос
dbglazkov
@dbglazkov
www.el-komp.ru

Как верно настроить редиректы со старого сайта из поддиректории?

Добрый день!
Такая задача.
Был сайт на WP - урлы закачивались .html (но только у страниц, у товаров нет)
Сейчас новый сайт на ocstore - все url - без .html
Старый сайт лежит в директории /old/
Плюс к этому, урл товаров изменился. Был /product/sumka-temno-sinyaya-s191/ (сейчас соответственно /old/product/sumka-temno-sinyaya-s191/) а стал /product-category/sumka-love-moschino
И еще одно.. ocstore делает дубли.
Товар доступен как по /product-category/sumka-love-moschino так и по /product-category/aksessuary2/sumka-love-moschino т.е. добавляется подрубрика.

Как видите вопросов не мало.
Но чувствую, что все решения рядом. в настройках htaccess
1. Надо чтоб все редиректилось со старого сайта из директории /old на новые, при этом без .html там где он был
2. Убрать дубли чтоб товар бы доступен только по /product-category/sumka-love-moschino
3. И в довесок убрать бы /?route=common/home с главной (при клике на лого)

Заранее спасибо.
OcStore 2.3.0.2.3
  • Вопрос задан
  • 95 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 2
@dodo512
Два сайта и два файла .htaccess
/.htaccess
/old/.htaccess

Запрос /old/product/ryukzak-srednij-love-moschino/ будет обработан правилами из файла /old/.htaccess

RewriteRule ^old/product/(.+)$ /$1 [L,R=301]
В таком виде правило работать не будет.
Как на самом деле работает mod_rewrite
Первому RewriteRule передается путь от того места, где находится .htaccess, до запрошенного файла.

Так что в RewriteRule будет передано product/ryukzak-srednij-love-moschino/
/old/.htaccess
RewriteRule ^product/(.+)$ /$1 [L,R=301]
Ответ написан
Так сделать просто редиркт частного случая.
RewriteRule ^product\-category/dorozhnyj\-chemodan\-guess$ /dorozhnyj\-chemodan\-guess/? [L,R=301]

Но в вашем случае нужно как-то автоматизировать, вместо запрошеных 30 строк вы дали 3
так что я не знаю сколько у вас ( продуктов есть ли в них логика так что оставляю их на вашу совесть ).
так будет редирект всех продуктов на без них

RewriteRule ^product\-category/(.+)$ /$1 [L,R=301]
где (.+) - групаа из 1 и более символов, и она же подставляется в $1

НУ и соответственно все варианты, притом последовательность важна. поскольку old/product попадает в маску все что после олд, и должен отработать до него.

RewriteRule ^product\-category/(.+)$ /$1 [L,R=301]
RewriteRule ^old/product/(.+)$ /$1 [L,R=301]
RewriteRule ^old/(.+)$ /$1 [L,R=301]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы