从 IIS 或 ASP.net MVC 或 haproxy 中的 URL 中删除子域

Remove Subdomain from URL in IIS or ASP.net MVC or haproxy

是否可以从 URL 中删除子域(或基本上将其视为 www)?

示例: subdomain.domain.com/specific/link/forsubdomain -> 域.com/specific/link/forsubdomain

并且没有指向主域和 return 404 错误, 例子: domain.com/specific/link/forsubdomain -> return 一个 404,因为它只存在于子域中。

如果也可以在 Haproxy 中做一些事情或者在 ASP.net MVC 路由 table 修改中伪装 URL 我愿意接受它。

不只是 IIS 配置。

只是想知道是否可以像我描述的那样更改 URL 并且仍然指向子域站点。

如果我正确理解你的问题,你指的是规范 URL。

在 IIS 中,您可以使用 URL Rewrite,这是一个您可以手动安装或通过 Web 平台安装程序(如果尚未安装)安装的模块。

这允许您创建一个 url 重写规则,您可以为每个站点配置该规则,类似于;

<rule name=”Redirect URL to WWW version”
    stopProcessing=”true”>
<match url=”.*” />
<conditions>
    <add input=”{HTTP_HOST}” pattern=”^example.com$” />
</conditions>
<action type=”Redirect” url=”http://www.example.com/{R:0}”
    redirectType=”Permanent” />
</rule>

您可以手动将规则添加到站点的 web.config 文件或使用 IIS 站点管理器工具中的 GUI。

Microsoft 和众多博主提供了大量 reference 和大量教程。

一个 example of a complete web.config 正在做这种类型的重定向。

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="WWW Redirect" stopProcessing="true">
                <match url=".*" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^contoso.com$" />
                </conditions>
                <action type="Redirect" url="http://www.contoso.com/{R:0}" redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>