Мне нужно перенаправить любые запросы со строками запроса из набора исходных URL-адресов обратно на страницу благодарности.
Например, мне нужно перенаправить:
http://example.com/test1/test2/[origin]/?id=1
обратно
http://example.com/thank-you
То, как я настроил его в моем файле .htaccess, таково:
RewriteEngine On
RedirectMatch 302 ^/test1/test2/(.*)/.+ /thank-you
Я протестировал регулярное выражение, которое использую вонлайн-тестер регулярных выражений, и он, кажется, работает как положено, поэтому я не понимаю, почему не происходит перенаправление. Вот ссылка на это.
Очевидно, мне пришлось добавить обратную косую черту, чтобы избежать косой черты в URL в тестере регулярных выражений, но, исходя из моего понимания того, как .htaccess оценивает регулярные выражения, этине нужны.
Мой вопрос: перенаправление отлично работает со страницы без строки запроса, если я удаляю .+
из конца строки регулярного выражения, что означает, что начальная часть регулярного выражения работаетхорошо.Я не понимаю, почему строка запроса не соответствует регулярному выражению, которое я создал.
Я также пытался:
RewriteCond %{REQUEST_URI} ^/test1/test2/(.*)/
RewriteCond %{QUERY_STRING} id=([0-9]+) [NC]
RewriteRule (.*) /thank-you [R=302,L]