Как уже упоминалось в комментариях к вопросу, вам нужно сделать два шага здесь:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^walkID=(\d+)&
RewriteRule ^/?display-ifootpath-walk$ /display-ifootpath-walk/%1 [R=301]
RewriteRule ^/?display-ifootpath-walk/(\d+)$ /display-ifootpath-walk?walkID=$1 [END]
Этот набор правил будет также работать в конфигурации хоста http-серверов и в файле динамической конфигурации (файл стиля ".htaccess") внутри DOCUMENT_ROOT
этого хоста.
Обратите внимание, что я не проверял эти строки, а только записывал их, как считал нужным Но я надеюсь, что не допустил глупой опечатки или логической ошибки ...
Если вы получаете статус http 500 («внутренняя ошибка сервера») с этими правилами, то есть вероятность, что вы используете очень старую версию http-сервера apache. В этом случае попробуйте заменить флаг [END]
на [L]
.
И общее замечание: вам всегда следует размещать такие правила в конфигурации хоста http-серверов, а не использовать файлы динамической конфигурации (".htaccess"). Эти динамические конфигурационные файлы добавляют сложность, часто являются причиной неожиданного поведения, их трудно отладить, и они действительно замедляют работу http-сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет доступа к реальной конфигурации хоста http-серверов (читай: действительно дешевые поставщики услуг) или для приложений, настаивающих на написании своих собственных правил (что является очевидным кошмаром безопасности).