Назад | Перейти на главную страницу

Значение строки запроса перенаправления Apache, равное определенному домену

Мне нужно ограничить конкретный шаблон строки запроса, который имеет URL-адрес, как показано ниже

https://beta-portal.example.com/public/wp-login.php?redirect_to=http://demo.testfire.net

Мне нужно ограничить значение redirect_to до https: //*.example.com, если какой-либо другой URL-адрес передается в redirect_to, он должен отправить запрещенную ошибку 403.

Я пробовал что-то вроде его, но оно не работает должным образом. Он всегда отправляет 403 запрещенную ошибку.

   RewriteCond     %{QUERY_STRING} !.*redirect_to=*.example.com.* [NC]

   RewriteRule "" "-" [F]

Не могли бы вы помочь мне с правильным синтаксисом для реализации вышеуказанного правила отрицания.

Заранее спасибо.

RewriteEngine On
RewriteCond %{QUERY_STRING} ^redirect_to [NC]
RewriteCond %{QUERY_STRING} !^redirect_to=https://.+\.example\.com$ [NC]
RewriteRule "" "-" [F]

Разрешить доступ к запросам со строкой запроса (и без строки запроса)

?foo=bar
?redirect_to=https://foo.example.com
?redirect_to=https://BAR.example.com

Запретить доступ к запросам со строкой запроса

?redirect_to
?redirect_to=
?redirect_to=abc
?redirect_to=https://example.com
?redirect_to=https://.example.com

Если убрать первый RewriteCond, то ТОЛЬКО запросы со строкой запроса redirect_to=https://*.example.com разрешается. Запросы с любой другой строкой запроса или без строки запроса запрещены.