代码之家  ›  专栏  ›  技术社区  ›  Nitin S

IIS重写规则-如果路径没有查询字符串

  •  0
  • Nitin S  · 技术社区  · 8 年前

    如何编写IIS重写规则 if path does not have query string and any capital letter exists in path then redirect to same path with lower case 是吗?

    例如
    http://localhost:62871/Second.aspx/Test?X=Y
    重定向到: http://localhost:62871/second.aspx/test?X=Y

    以下规则可以工作,但它也会降低查询字符串的大小写:

        <rewrite>
            <rules>
                <rule name="LowerCaseRule1" stopProcessing="true">
                    <match url="[A-Z]" ignoreCase="false" />
                    <action type="Redirect" url="{ToLower:{URL}}" />
                </rule>
            </rules>
        </rewrite>
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   MisterSmith    8 年前

    变量 URL 包含整个url-so ToLower 是整个URL的下框。

    要获得所需的行为,您需要创建 action 的URL。

    可用变量包括 {HTTP_HOST} 我是说, {PATH_INFO} 和 {QUERY_STRING} ,然后可以将小写函数应用于所需的任何变量。

    创建最终url时,还需要包含分隔符 : , / 我是说, ? 在变量之间获取有效的url。

    有关变量的快速概述,请参见本页: https://weblogs.asp.net/owscott/url-parts-available-to-url-rewrite-rules

    有关完整重写模块文档,请参见此处: https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference