web.config: 重定向 301 无法正常工作

web.config: redirect 301 doesn't work properly

我想对一个站点上的所有请求(还有图像、文档和其他文件)进行 301 重定向到另一个站点的主页.

我尝试将 web.config 放在站点的根目录中,然后插入此代码:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <location>
    <system.webServer>
        <httpErrors existingResponse="PassThrough" />
      <httpRedirect enabled="true" destination="http://www.newsite.com/" httpResponseStatus="Permanent" />
    </system.webServer>
 </location>
</configuration>

但是 web.config 上的这段代码问题是如果我数字: http://www.oldsite.com/file.html

浏览器将我重定向到:http://www.newsite.com/file.html

但我需要所有重定向都在主页上。

我该怎么做?

您需要设置 exactDestination="true" 使目的地成为绝对:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <location>
    <system.webServer>
        <httpErrors existingResponse="PassThrough" />
      <httpRedirect exactDestination="true" enabled="true" destination="http://www.newsite.com/" httpResponseStatus="Permanent" />
    </system.webServer>
 </location>
</configuration>

参见:https://www.iis.net/configreference/system.webserver/httpredirect