只是 URL 重写不起作用

Simply URL Rewrite not working

我正在尝试设置一个 IIS URL Rewrite 函数来简单地将任何 URL 请求发送到 google(作为测试):

            <rule name="Intercept" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
                <match url="(.*)" />
                <action type="Rewrite" url="google-homepage-url-here" appendQueryString="false" logRewrittenUrl="true" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="example.com$" />
                </conditions>
            </rule>

我正在使用 Rewrite 而不是 Redirect,因为我需要对用户隐藏 URL。上面的配置适用于重定向但不适用于重写,这是为什么?

当我点击 http://example.com/blablabla 时,我得到了 404.4

我的目标是将用户定向到 google 主页。

我安装了 ARR,有什么想法吗?

如果您希望用户被定向到 google 主页,您应该使用重定向,而不是重写。那不是 "hiding url from user" 而是在服务器端处理。

没有任何日志,我只能建议您的 IIS 正在尝试重写 google,要求它提供一些不存在的页面,显然 returns 404。如果您的网站使用 http,则可能会发生这种情况例如,google 服务器使用 https。

我认为您还应该检查重定向和重写之间的区别,this文章是一个好的开始。