У меня есть несколько тысяч таких ссылок
/Gallery?cmd=viewCarGallery&carID=3747&pgID=1
Теперь я хочу перенаправить их с помощью .htaccess на другой сайт по ссылке других. Каждая ссылка будет перенаправлена на свою целевую ссылку. Я пробовал вот так
Redirect 301 /Gallery?cmd=viewCarGallery&carID=3747&pgID=1 http://example.com/gallery/fcar_gallery
Но не работает. Я включил mod_rewrite на моем сервере, и другое перенаправление работает отлично.
Строка запроса не является частью соответствия в директиве Redirect, чтобы перенаправить строки запроса, вам необходимо использовать мод-перезапись следующим образом:
Опция 1
RewriteEngine on
RewriteCond %{THE_REQUEST} /Gallery\?cmd=viewCarGallery&carID=3747&pgID=1 [NC]
RewriteRule ^ http://example.com/gallery/fcar_gallery? [NC,L,R]
вариант 2
RewriteEngine on
RewriteCond %{QUERY_STRING} ^cmd=viewCarGallery&carID=3747&pgID=1 [NC]
RewriteRule ^ http://example.com/gallery/fcar_gallery? [NC,L,R]
Используем пустой вопросительный знак ? в конце целевого URL-адреса, чтобы отказаться от старых строк запроса, в противном случае эти строки запроса добавляются к целевому URL-адресу по умолчанию.
Изменить р к R = 301 если вы хотите сделать перенаправление постоянным.
[Проверено на apache2 и 2.4]