У меня есть набор правил перезаписи, которые должны обрабатывать URL-адрес с параметрами от 1 до 5. Таким образом, мой URL может выглядеть так: www.site.com/topic1/page1 или www.site.com/topic1/sub1/page1.
Вот мои правила в этом примере:
RewriteRule ^([^/.]+)/?$ /staticpages/process-selection.php?param1=$1 [E=rwdone:yes,L]
RewriteRule ^([^/.]+)/([^/.]+)/?$ /staticpages/process-selection.php?param1=$1¶m2=$2 [E=rwdone:yes,L]
RewriteRule ^([^/.]+)/([^/.]+)/([^/]+)/?$ /staticpages/process-selection.php?param1=$1¶m2=$2¶m3=$3 [E=rwdone:yes,L]
RewriteRule ^([^/.]+)/([^/.]+)/([^/]+)/([^/]+)/?$ /staticpages/process-selection.php?param1=$1¶m2=$2¶m3=$3¶m4=$4 [E=rwdone:yes,L]
RewriteRule ^([^/.]+)/([^/.]+)/([^/]+)/([^/]+)/([^/]+)/?$ /staticpages/process-selection.php?param1=$1¶m2=$2¶m3=$3¶m4=$4¶m5=$5 [E=rwdone:yes,L]
Чтобы усложнить ситуацию, у меня может быть перенаправление 301 со старого URL-адреса на один из этих новых URL-адресов. Таким образом, «/topic1/page1/oldpage» может сначала быть перенаправлено на «/topic1/page1/newpage».
По какой-то причине, когда происходит перезапись, URL-адрес, который отображается в браузере, имеет правильный URL-адрес, но со старыми переменными, добавленными к URL-адресу следующим образом: /topic1/page1/newpage?param1=page1¶m2=oldpage
Мне интересно, есть ли способ избежать этой ситуации. что, черт возьми, я делаю неправильно здесь.