iis - 简单的 URL 重写不起作用

标签 iis url-rewriting iis-7

我正在尝试设置 IIS URL 重写 函数简单地将任何 URL 请求发送到谷歌(作为测试):

            <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>

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

当我点击 http://example.com/blablabla我得到一个 404.4

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

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

最佳答案

如果您希望用户被定向到谷歌主页,您应该使用重定向,而不是重写。这不是“向用户隐藏 url”,而是在服务器端处理。

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

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

关于iis - 简单的 URL 重写不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38370631/

相关文章:

node.js - 如何在 iisnode 中托管服务和静态内容

asp.net-core - 我的 Entity Framework Core API 在本地工作正常,但在生产中失败并出现 405 错误

authentication - Nginx 代理通过证书向 MS IIS 进行身份验证

php - 站点全局htaccess重写规则

asp.net - 在 ASP.NET 中单击按钮后回发导致 URL 更改

wcf - 无法更改WCF中的文化

asp.net - 如何在.NET 3.5 Web应用程序中使用.NET 4.0 Web应用程序?

c# - 如何查看IIS上的站点是否使用https证书运行

.htaccess - 如何将 URL 从 "example.com/search/.../?folder=something"重定向到 "example.com/something/search/.../"

asp.net - 未找到主题名称 CN=IdentityTKStsCert 的证书