Это не будет работать - проблема в том, что информация в исходном URL отличается от URL перенаправления. То есть, вы получили данные в одном, а не в другом. На самом деле все правила перезаписи могут соответствовать шаблону URL и перемещать данные, чтобы переформатировать URL.
Лучшее, что вы можете сделать, это примерно так:
RewriteRule ^product_info.php/(.+)-p-[0-9]+ products/$1? [L]
Но при этом пропускается такая информация, как s-39-ms-1
и pn-385
.
То же самое имеет место, если вы действительно хотите замаскировать URL-адреса, чтобы URL-адрес перенаправления маскировал исходный.
Данные, присутствующие в URL-адресах «перенаправления», не совпадают с данными в исходных, так что вы действительно не сможете сделать это с помощью чистого htaccess.
Что вы могли бы сделать, это настроить метод, с помощью которого пользователь отправляет запрос, который затем направляет к специальному сценарию, который анализирует URL-адрес, запрашивает ваше хранилище данных и создает новое, извлекая недостающую информацию.
Это достаточно просто, если вы действительно хотите перенаправить, потому что вы просто скажете сценарию перенаправить пользователя, но получите беспорядок, если вы хотите замаскировать URL-адрес, потому что вам придется идти и обслуживать страницу непосредственно на скрипт обработки.
Надеюсь, это поможет.