IIS 10中的URL重写问题
我将首先声明我不知道如何使用正则表达式,而且在不久的将来我没有时间学习它。 我读过一篇文章,解释了如何做我需要的事情,但当我尝试去做的时候,它根本不起作用,完全破坏了网页(404个错误)。 以下是文章: 我的问题是,当我在GUI中创建重写时,即使我在网站中键入“精确匹配”而不是“正则表达式”,它也不会按照应该的方式重写URL(或者按照我认为应该的方式,我显然错了) 我想做的是:IIS 10中的URL重写问题,url,iis,url-rewriting,Url,Iis,Url Rewriting,我将首先声明我不知道如何使用正则表达式,而且在不久的将来我没有时间学习它。 我读过一篇文章,解释了如何做我需要的事情,但当我尝试去做的时候,它根本不起作用,完全破坏了网页(404个错误)。 以下是文章: 我的问题是,当我在GUI中创建重写时,即使我在网站中键入“精确匹配”而不是“正则表达式”,它也不会按照应该的方式重写URL(或者按照我认为应该的方式,我显然错了) 我想做的是: 如果客户端转到myweb.site.com,则重定向到myweb.site.com/login 除非直接进入mywe
- 如果客户端转到
,则重定向到myweb.site.com
myweb.site.com/login
- 除非直接进入
myweb.site.com/thispage.aspx
<rules>
<rule name="Redirect to Client Login on root lookup" enabled="true" patternSyntax="ExactMatch" stopProcessing="true">
<match url="https://myweb.site.com" />
<conditions logicalGrouping="MatchAny">
<add input="{QUERY_STRING}" pattern="https://myweb.site.com/Default.aspx" negate="true" />
</conditions>
<action type="Rewrite" url="https://myweb.site.com/login" />
</rule>
我更喜欢在GUI中这样做,但是如果我必须手动编辑配置,那么我会这样做
提前感谢您的帮助!对不起,我没有更多的知识 在您的案例中,规则应该是这样的:
<rule name="root to login" stopProcessing="true">
<match url="^$" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://myweb.site.com/login" appendQueryString="true" redirectType="Permanent" />
</rule>
此规则将重定向http://myweb.site.com
至https://myweb.site.com/login
仅限
它将不重定向https://myweb.site.com
至https://myweb.site.com/login
。(如果您想允许,只需删除conditions
部分)
在这一行中,url属性应该包含url路径的模式。在您的情况下,url路径为空(因为它是主页),regexp
^$
表示空字符串
应仅包含资源路径和可选的查询字符串,它不应包含URI方案(http:
或https
)或主机名和端口号(myweb.site.com
)。此外,在{QUERY\u STRING}
输入条件中还有完整的URL。查询字符串是?
字符后的部分。请澄清您是否希望/
重写到/login
或重定向到/login
。我认为重定向更有意义,否则您将有两个URL具有相同的响应内容,这可能会混淆用户。我希望将客户端从/
发送到/login
,因此,如果重定向是正确的方法,那就太好了!但是现在,我不确定在GUI的“模式”字段中输入什么(代码