【问题标题】:Custom ServerVariable IIS自定义 ServerVariable IIS
【发布时间】:2014-08-04 22:56:26
【问题描述】:

我正在尝试使用 url 重写创建自定义服务器变量。 IIS 的 Url Rewrite 生成以下配置条目

    <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 在这种情况下应该是:“test”。

如果有任何建议,我将不胜感激 提前谢谢

【问题讨论】:

    标签: c# iis url-rewriting web-config request.servervariables


    【解决方案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>   
    

    使用此规则,可以从 C# 访问 ServerVariable "HTTP_MANUFACTURER":

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

    朋友与我分享的另一个选项是:

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

    如您所见,我重写了 url 并设置了一个参数,我通过模式分配过滤值。

    我希望这对其他人有帮助。

    【讨论】:

      猜你喜欢
      • 2012-06-21
      • 1970-01-01
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多