Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IIS 10中的URL重写问题_Url_Iis_Url Rewriting - Fatal编程技术网

IIS 10中的URL重写问题

IIS 10中的URL重写问题,url,iis,url-rewriting,Url,Iis,Url Rewriting,我将首先声明我不知道如何使用正则表达式,而且在不久的将来我没有时间学习它。 我读过一篇文章,解释了如何做我需要的事情,但当我尝试去做的时候,它根本不起作用,完全破坏了网页(404个错误)。 以下是文章: 我的问题是,当我在GUI中创建重写时,即使我在网站中键入“精确匹配”而不是“正则表达式”,它也不会按照应该的方式重写URL(或者按照我认为应该的方式,我显然错了) 我想做的是: 如果客户端转到myweb.site.com,则重定向到myweb.site.com/login 除非直接进入mywe

我将首先声明我不知道如何使用正则表达式,而且在不久的将来我没有时间学习它。 我读过一篇文章,解释了如何做我需要的事情,但当我尝试去做的时候,它根本不起作用,完全破坏了网页(404个错误)。 以下是文章:

我的问题是,当我在GUI中创建重写时,即使我在网站中键入“精确匹配”而不是“正则表达式”,它也不会按照应该的方式重写URL(或者按照我认为应该的方式,我显然错了)

我想做的是:

  • 如果客户端转到
    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的“模式”字段中输入什么(代码