У меня есть набор правил перезаписи, которые должны обрабатывать 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 / стр.1 / NewPage? Param1 = стр.1 & param2 = oldpage
Мне интересно, есть ли способ избежать этой ситуации. какого чёрта я тут делаю не так.