Пользовательский серверПеременный IIS

Я пытаюсь создать пользовательский сервер с переменной URL переписать. Url Rewrite для IIS генерирует следующую запись конфигурации

    <rewrite>
        <rules>
          <rule name="CName to URL - Rewrite" stopProcessing="true">
              <match url=".*" />
              <conditions>
                    <add input="{HTTP_HOST}" pattern="^(?!www)(.*)\.localfurnco\.de" />
              </conditions>
              <action type="Rewrite" url="?" appendQueryString="false" />
                <serverVariables>
                    <set name="HTTP_MANUFACTURER" value="{C:1}" />
                </serverVariables>
          </rule>   
        </rules>
    </rewrite>

Но при переборе серверных переменных я не могу найти HTTP_MANUFACTURER. Перезапись URL, похоже, работает, но я не могу получить переменную.

Я пытаюсь позвонить по адресу: test.localfurnco.de/subdir/webservice.asmx?wsdl.

C: 1 в этом случае должно быть: "тест".

Буду благодарен за любые предложения и заранее спасибо

1 ответ

Попробовав несколько часов, я понял это сам. Вот итоговое правило.

            <rule name="CName to URL - Rewrite" stopProcessing="false">
                <match url=".*" negate="false" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                    <add input="{SERVER_NAME}" pattern="^(?!www)(.*)\.localfurnco\.de" />
                </conditions>
                <action type="Rewrite" url="?CustomValue={C:1}" logRewrittenUrl="true" />
                <serverVariables>
                    <set name="HTTP_MANUFACTURER" value="{C:1}" />
                </serverVariables>
            </rule>   

С этим правилом можно получить доступ к ServerVariable "HTTP_MANUFACTURER" из C#:

   string variable= httpContext.Current.Request.ServerVariables.Get("HTTP_MANUFACTURER");

Другой вариант, которым поделился со мной мой друг, заключается в следующем:

   string value= HttpContext.Current.Request.Params.Get("CustomValue");

Как вы можете видеть, я переписываю URL и устанавливаю параметр, которому я присваиваю, по шаблону, отфильтрованное значение.

Я надеюсь, что это помогает кому-то еще.

Другие вопросы по тегам