如何返回任何未指向IIS web.config中任何文件的Web请求的特定页面?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何返回任何未指向IIS web.config中任何文件的Web请求的特定页面?相关的知识,希望对你有一定的参考价值。

在asp.net 4.5.2(web api)中,我想拥有它,以便对于任何Web请求(不是api),如果它不指向任何文件(即会导致404),它应该只是返回根页面(“/”),但不更改链接,链接应该仍然是我键入的内容。

如何在web.config中设置它?

答案

您可以使用以下规则,如果文件或目录不存在,它将重写页面。它只会重写页面网址将是相同的。

<rule name="Rewrite to index" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="http://www.sample1.com/index.html" logRewrittenUrl="true" />
            </rule>

enter image description here

此致,Jalpa。

以上是关于如何返回任何未指向IIS web.config中任何文件的Web请求的特定页面?的主要内容,如果未能解决你的问题,请参考以下文章

“执行此操作时出错”

IIS Web.config - 确保检测没有文件扩展名的文件

如何在 web.config 中配置 301 永久重定向?

Web.Config (IIS) 中的简单 301 重定向

如何防止 IIS 默认站点 web.config 文件被虚拟目录继承?

IIS Web.Config自定义404错误