gpt4 book ai didi

iis - 在 url 中重写规则

转载 作者:行者123 更新时间:2023-12-02 03:17:04 25 4
gpt4 key购买 nike

如何设置规则以将 url 中的 & 替换为 &

这有效:www.../home.asp?h=1&w=2

这失败了:www.../home.asp?h=1&w=2

最佳答案

对于初学者来说,应该注意的是,您可以按如下方式访问乱七八糟的 w 参数:

Request.QueryString("amp;w");

但是,我希望您想要更 Eloquent 东西:)

假设您可以访问 IIS URL Rewrite模块,(IIS 7 及更高版本),您可以向 web.config 添加一些规则,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="One Bad Ampersand" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{QUERY_STRING}" pattern="^([^&amp;]+)&amp;amp;([^&amp;]+)$" />
</conditions>
<action type="Rewrite" url="{R:1}?{C:1}&amp;{C:2}" appendQueryString="false" />
</rule>
<rule name="Two Bad Ampersand" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{QUERY_STRING}" pattern="^([^&amp;]+)&amp;amp;([^&amp;]+)&amp;amp;([^&amp;]+)$" />
</conditions>
<action type="Rewrite" url="{R:1}?{C:1}&amp;{C:2}&amp;{C:3}" appendQueryString="false" />
</rule>
<rule name="Three Bad Ampersand" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{QUERY_STRING}" pattern="^([^&amp;]+)&amp;amp;([^&amp;]+)&amp;amp;([^&amp;]+)&amp;amp;([^&amp;]+)$" />
</conditions>
<action type="Rewrite" url="{R:1}?{C:1}&amp;{C:2}&amp;{C:3}&amp;{C:4}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

这些规则的作用是检查查询字符串中传入的 & 并将其替换为 &。我认为不可能提出一个通用规则来处理任意数量的事件。但是,我已经为最多出现 3 次的事件建立了一个模式,您应该能够按照该模式根据需要添加任意数量的事件。

需要注意的是,如果您希望重定向用户的浏览器,您可以通过将每个操作中的 type 属性从 Rewrite 更改为 Redirect 来实现

关于iis - 在 url 中重写规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36310169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com