4

Мне нужно настроить обратный прокси-сервер, который будет помещать значение заголовка из исходного запроса в качестве параметра в URL назначения. Причина этого исключительно для конкретного приложения, и, к сожалению, я не могу изменить это приложение. Например, мне нужен следующий https://a.com с http-заголовком myparam = abcd. Мне нужно перейти на http://b.com/?val=abcd.

Можно ли настроить IIS или Apache для выполнения такой задачи? Если да, можете ли вы объяснить, как?

2 ответа2

2

Протестировано в Apache 2.4:

# (In a VirtualHost for a.com)
RewriteEngine on
RewriteRule ^(.*)$ http://b.com$1?val=%{HTTP:myparam} [QSA,P]

Пример переписывает (если заголовок myparam имеет значение myvalue):

  • a.com становится http://b.com?val=myvalue
  • a.com/path/here становится http://b.com/path/here?val=myvalue
  • a.com/path?a=b&c=d становится http://b.com/path?a=b&c=d&val=myvalue

Если заголовок myparam не существует, a.com/x будет перенаправлен на http://b.com/x?val= . Если вы хотите перенаправить на http://b.com/x , вы можете использовать следующую более длинную версию выше:

RewriteEngine on
RewriteCond %{HTTP:myparam} .
RewriteRule ^(.*)$ http://example.com$1?val=%{HTTP:myparam} [QSA,L,P]
RewriteRule ^(.*)$ http://example.com$1 [P]

Ссылки по теме:

1

Для IIS вы можете использовать расширение URL Rewrite :

IIS URL Rewrite 2.0 позволяет веб-администраторам создавать мощные правила для реализации URL-адресов, которые пользователям легче запоминать, а поисковым системам - проще. С помощью шаблонов правил, карт перезаписи, поставщиков .NET и других функций, интегрированных в IIS Manager, веб-администраторы могут легко настроить правила для определения поведения перезаписи URL на основе заголовков HTTP, заголовков ответа HTTP или запроса, переменных сервера IIS и даже сложных программные правила. Кроме того, веб-администраторы могут выполнять перенаправления, отправлять пользовательские ответы или останавливать HTTP-запросы на основе логики, выраженной в правилах перезаписи.

Работает с: IIS 7, IIS 7.5, IIS 8

Пошаговое руководство может быть найдено на:Создание правил перезаписи для модуля перезаписи URL.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .