0

我已按照此处报告的说明进行操作: https ://www.c-sharpcorner.com/UploadFile/francissvk/set-default-page-for-a-website-in-iis421/

我想要实现的是,当用户尝试访问我的网站时:“https://mysitename.com”它应该被重定向到主页(“https://mysitename.com/pages/home.aspx” )。我不想只创建一个根 Default.aspx 页面来进行重定向,我想通过 Web.config 实现这种行为。

如前所述,我尝试了上述链接中的说明,购买还尝试了该站点上提出的许多解决方案,或多或少建议将此配置添加到 Web.config :

<system.webServer>
        <defaultDocument enabled="true">
            <files>
                <clear />
                <add value="/Pages/Home.aspx"/>
            </files>
        </defaultDocument>
        <handlers>

我尝试了不同的路径变体,我尝试过:

<add value="/Pages/Home.aspx"/>
<add value="~/Pages/Home.aspx"/>
<add value="./Pages/Home.aspx"/>
<add value="Home.aspx"/>

但是我总是收到此消息错误:

403 - Access denied.

如果我在浏览器中手动输入完整页面 url “https://mysitename.com/pages/home.aspx”,那么我没有问题(只是指出该页面存在并且正在运行)

我不明白我在配置中缺少什么

4

1 回答 1

1

IIS 中的默认页面或 DefaultDocument 无法满足您的需求。

当用户请求指向服务器上目录的 URL 而不指定实际页面时,它定义了加载哪个文档的功能。

value字段应该是该目录中的文件名,例如index.htmlor home.asp,它不能指向其他目录中的文件。

在您的情况下,您可以使用内置HTTP Redirect功能,在 GUI 中启用它并指向“页面”,同时选中Only redirect requests to...复选框

在您的根 web.config 中,这可能如下所示:

 <system.webServer>        
    <httpRedirect enabled="true" destination="pages" childOnly="true" />
    <defaultDocument enabled="true">
        <files>
            <clear />
            <add value="Home.aspx"/>
        </files>
    </defaultDocument>        
 </system.webServer>

另一种选择是使用IIS 重写模块,它允许您创建有关如何重定向和重写请求的更复杂的规则。它应该更快,因为它确实可以在没有返回浏览器的 HTTP 重定向的情况下工作,但您首先需要安装它并了解如何使用它。

于 2022-02-23T05:31:51.887 回答