【问题标题】:Redirect works but rewrite doesn't on an Azure web app重定向有效,但重写在 Azure Web 应用程序上无效
【发布时间】:2015-09-07 08:57:46
【问题描述】:

我正在尝试从我的旧 ISP 重定向到我的 azure 网站。我已经设置了必要的 DNS 记录。由于我在 Web 应用程序上使用子文件夹,因此我需要在根 web.config 文件中设置重定向规则,以从域名指向主站点的正确子文件夹。

当我有重定向规则时,它可以完美运行。

            <rule name="Works" stopProcessing="true">
                <match url=".*" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^mysite.com$" />
                </conditions>
                <action type="Redirect" url="http://mysite.azurewebsites.net/mysub"/>
            </rule>              

但是,当我更改为 Rewrite 时,它​​会失败。我真的想要重写,因为我不希望用户在浏览器中看到 url 的变化。

            <rule name="Fails" stopProcessing="true">
                <match url=".*" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^mysite.com$" />
                </conditions>
                <action type="Rewrite" url="http://mysite.azurewebsites.net/mysub"/>
            </rule>              

我收到以下消息:

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

我做错了什么?

【问题讨论】:

    标签: azure iis azure-web-app-service


    【解决方案1】:

    您的重写操作应该是相对路径,请参阅文档:

    http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#Rewrite_action

    A substitution string must always specify the URL path

    【讨论】:

    • 谢谢 问题是如果我把它设为相对它是相对于我的旧网站,即 最终成为 mysite.com/mysub 哪个不存在
    • 如果您想将您的站点移动到 Azure 并应用重写规则,我建议将您的 DNS 直接转发到 yoursite.azurewebsites.net(在门户中配置)并在您的新网站中应用重写规则在 Azure 上。
    • 如果你想发送到不同的服务器怎么办?即:不同的网络应用程序/微服务处理对特定路径的请求?这是一个完全有效的场景(即:设置反向代理)
    猜你喜欢
    • 2017-05-08
    • 2016-12-19
    • 1970-01-01
    • 2021-10-25
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    相关资源
    最近更新 更多