IIS 重写规则 - 如果路径没有查询字符串
IIS Rewrite rule - if path does not have query string
如何编写 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>
变量 URL
包含整个 url - 所以 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
如何编写 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>
变量 URL
包含整个 url - 所以 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