Oscommerce для переадресации OpenCart - PullRequest
0 голосов
/ 26 мая 2018

Принцип работы URL-адресов Oscommerce SEO Friendly заключается в том, что они генерируются из названия продукта или категории, за которым следует ap для продукта и c для категории, а затем идентификатор продукта или категории.Для категорий также используется каждый идентификатор родительского каталога.Например:

https://example.com/jeep-pinion-gears-c-284_845.html

В течение многих лет товары и категории редактируются и перемещаются, поэтому изменяется URL.Тем не менее, все старые URL-адреса все еще разрешены, поскольку страницы обслуживаются строго на основе последней части URL-адреса.Он ищет c или p и идентификаторы.SEO все еще можно поддерживать.Например:

https://example.com/jeep-pinion-gears-c-284_845.html
https://example.com/jeep-pinion-gears-and-accessories-c-284_845.html
https://example.com/jeep-pinion-gears-c-284_1234_845.html
https://example.com/ring-pinion-gears-c-845.html

Будет загружать все содержимое одинаково.

Я недавно перешел на OpenCart, где использовал последний URL для каждого продукта и категории из магазина OsCommerce.Тем не менее, все старые URL-адреса Oscommerce не работают.

Первоначально я писал некоторые перенаправления регулярных выражений, чтобы соответствовать идентификаторам, но я сталкиваюсь с проблемами цикла перенаправления.

Есть ли у кого-нибудь идеи о другом подходе?

1 Ответ

0 голосов
/ 26 мая 2018

Если есть способ получить новый URL-адрес OpenCart из ваших SEO-адресов OsCommerce

RewriteCond %{REQUEST_URI} !^/.*?-[cp]-\d+\.html$
RewriteCond %{REQUEST_URI} ^/(.*?)-([cp])-[\d_]*?(\d+)\.html$  [NC]
RewriteRule (.*) https://new.example.com/%2-%3.php [R=301,L]

Важной частью здесь является правило остановки, а не предотвращения зацикливания перенаправлений.

Поместите егониже другие переписывают, удаляя косую черту или www-поддомен, или перезаписывают http в https.

Если три не "простое отношение" между двумя URL-адресами, вам не повезло, и вы должнынаписать редирект для каждого из них.Вы должны быть в состоянии генерировать правила, используя SEO URL-адреса, хранящиеся в БД.

Redirect 301 /old-page.html http://www.example.com/new-page.html

Может быть, перенаправление PHP также может быть полезным?

header("Location: http://www.example.com/new-page.html", true, 301);
exit();

...