Переписать .htaccess для потерянных URL, содержащих подчеркивания и аргументы - PullRequest
0 голосов
/ 23 мая 2018

Я только с большой осторожностью изменяю .htaccess для целей своего интернет-магазина.

Некоторое время назад я перенес веб-сайт с osCommerce на OpenCart.Это привело к появлению потерянных URL в стиле osCommerce с этими двумя примерами форматов:

http://www.londonpower.com/catalog/product_info.php?products_id=75

http://www.londonpower.com/catalog/product_info.php?cPath=15&products_id=75

Многие сайты в интернете имеют ссылки на мои старыев стиле URL, и у меня их около 100, поэтому я бы хотел перенаправить их на новые URL в следующем формате:

http://www.londonpower.com/2-channel-guitar-preamp

Если я правильно понимаю, проблема заключается вдве части:

  1. для устранения подчеркиваний, поскольку они ставят в тупик механизм .htaccess;

  2. для последующего перенаправления 301 на URL.

До сих пор я смог получить первое подчеркивание, которое изменилось на дефис, с этим правилом переписывания:

RewriteRule ^([^_]*)_(.*)$ /$1-$2 [R=301,L]

... но не повезлосо вторым подчеркиванием (тот, который является частью строки запроса после «?»).Я застрял там.

1 Ответ

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

Я бы не использовал переписывание для этого.Файл catalog/product_info.php существует в новом магазине?Если нет, создайте его и добавьте простое перенаправление, используя карту старых идентификаторов для новых URL-адресов.Если это так, сделайте то же самое в другом файле, например, old-redirector.php, затем перепишите запросы к нему.

...