Я только что изменил структуру URL-адресов страниц одного из моих сайтов, используя переписывание URL, и мне нужно перенаправить старую структуру на новую (для обработки старых ссылок, проиндексированных Google). Моя проблема в том, что я хочу перенаправить переписанный URL, а не реальный URL, и я не могу найти способ сделать это.
До изменений у меня были следующие URL:
RewriteRule ^ products / ([^ _ \ r \ n //] *) / ([^ _ \ r \ n //] *) / $ /products.aspx?cat=$1&subcat=$2 [NC, L]
После изменений у меня следующее:
RewriteRule ^ products - ([^ _ \ r \ n //] *) - ([^ _ \ r \ n //] *) / $ /products.aspx?cat=$1&subcat=$2 [NC, L]
Что я хочу сделать сейчас - это выполнить редирект 301 для URL, которые соответствуют
^ products / ([^ _ \ r \ n //] *) / ([^ _ \ r \ n //] *) / $ to ^ products - ([^ _ \ r \ n //] *) - ([^ _ \ r \ n //] *) / $,
т.е. иметь следующее правило:
RewriteRule ^ products - ([^ _ \ r \ n //] *) - ([^ _ \ r \ n //] *) / $ products - ([^ _ \ r \ n //] * ) - ([^ _ \ r \ n //] *) / [NC, L]
Приведенное выше правило приводит к следующей ошибке:
«Страница перенаправляется неправильно»
Есть ли способ сделать это с помощью .Net или с помощью правил перезаписи Url?
Любая помощь будет принята с благодарностью.