Я пытаюсь украсить некоторые URL. Я настроил файл htaccess, чтобы мои URL-адреса были изменены:
старый URL: http://mysite.com/index.php?id=45tye4
новый URL: http://mysite.com/45tye4
Теперь я хочу перенаправить старые URL-адреса на новые URL-адреса. Вот что я пытаюсь без удачи:
RewriteRule ^index.php?id=(.*)$ $1 [R=301,L]
Основная проблема, похоже, заключается в '?' в URL. Когда я попробую тот же URL без? редирект работает. Я также попробовал другие варианты без удачи:
RewriteRule ^index.php\?id=(.*)$ $1 [R=301,L]
RewriteRule ^index.php[\?]id=(.*)$ $1 [R=301,L]
Обновление:
Я добавил перенаправление в соответствии с инструкциями анубхавы. Перенаправление работает, но, к сожалению, я попадаю в цикл перенаправления. Я думал, что [L] флаг должен решить петлю перенаправления, но это не так.
RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^index\.php/?$ /%1? [R=301,L]
RewriteRule ^(.*)$ index.php?id=$1 [L]