Подтвердить что ты не робот

Htaccess 301 redirect - Удалить строку запроса (QSA)

Я боролся с некоторыми переадресациями htaccess. Я просто потратил некоторое время на чтение и поиск в стеке и не смог получить anwser, который работает с моим сценарием.

Я делаю переадресацию 301 для старого веб-сайта клиента на новый. На старых страницах есть запрос параметров, который я хочу удалить из URL.

/menu.php?idCategorie=29&idDetail=172

к

/new-website-page/

У меня есть несколько запросов, вот несколько примеров:

/menu.php?idCategorie=29&idDetail=172
/menu.php?idCategorie=29&idDetail=182
/menu.php?idCategorie=29&idDetail=184
/menu.php?idCategorie=29&idDetail=256

Какая вся ссылка на разные новые страницы.

Вот что я пробовал:

RewriteCond %{QUERY_STRING} idDetail=172
RewriteRule ^menu.php(.*) /new-page/? [R=301,L]

Я перенаправляюсь правильно, но URL-адрес содержит строку запроса:

http://website.com/new-page/?idCategorie=29&idDetail=172

Я также пробовал это:

RewriteRule ^menu.php?idCategorie=29&idDetail=172$ http://website.com/new-page/? [L,R=301]

И это:

RewriteCond %{QUERY_STRING} idDetail=172(.*)$
RewriteRule ^menu.php /new-page-name?$1 [L,R=301]

И это не сработало (все еще есть строка запроса в конце)

Спасибо!

4b9b3361

Ответ 1

Вы можете использовать это правило:

RewriteRule ^menu\.php$ /new-page-name? [L,R=301]

Обратите внимание на завершающий ? в конце, который используется для удаления любой существующей строки запроса в исходном URI.