如何在asp.net中将RedirectType添加到外部配置文件

如何在asp.net中将RedirectType添加到外部配置文件,redirect,web-config,http-status-code-301,http-status-code-302,Redirect,Web Config,Http Status Code 301,Http Status Code 302,我在应用程序根目录中有一个单独的.config文件,其中包含用于重定向的映射URL,并在web.config中引用该.config文件用于301永久重定向!这个很好用 现在,我还想添加一些链接,这些链接将重定向为302状态码。如何在external.config文件中添加302重定向并相应重定向。 rewritemaps.config <rewriteMaps> <rewriteMap name="Redirects"> <add key="

我在应用程序根目录中有一个单独的
.config
文件,其中包含用于重定向的
映射URL
,并在
web.config
中引用该
.config
文件用于
301永久重定向
!这个很好用

现在,我还想添加一些链接,这些链接将重定向为302状态码。如何在external.config文件中添加302重定向并相应重定向。

rewritemaps.config

<rewriteMaps>
    <rewriteMap name="Redirects">
       <add key="/oldcellphone" value="/newcellphones.aspx" />
    </rewriteMap>
</rewriteMaps>
<system.webServer>
     <rewrite>
      <rewriteMaps configSource="rewritemaps.config">
        </rewriteMaps>
          <rules>
            <rule name="Redirect rule1 for Redirects">
              <match url=".*" />
              <conditions>
                <add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
              </conditions>
              <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent"/>
            </rule>
          </rules>
        </rewrite>
    </system.webServer>
<rule name="othersite" stopProcessing="true">
<match url="^/hm1$" />
<action type="Redirect" url="http://www.google.com" redirectType="Found"/>
</rule>
301状态的链接约为
1000个,302状态的链接约为
400个。如果无法在
外部文件(rewritemaps.config)
中执行此操作,请建议首选方法

更新: 如果请求的URL中的特定字符串匹配,您能帮助我重定向到另一个站点(不同的域)吗。 例如:如果请求的URL包含“/hm1”,则重定向到其他站点。i、 e

Web.config

<rewriteMaps>
    <rewriteMap name="Redirects">
       <add key="/oldcellphone" value="/newcellphones.aspx" />
    </rewriteMap>
</rewriteMaps>
<system.webServer>
     <rewrite>
      <rewriteMaps configSource="rewritemaps.config">
        </rewriteMaps>
          <rules>
            <rule name="Redirect rule1 for Redirects">
              <match url=".*" />
              <conditions>
                <add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
              </conditions>
              <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent"/>
            </rule>
          </rules>
        </rewrite>
    </system.webServer>
<rule name="othersite" stopProcessing="true">
<match url="^/hm1$" />
<action type="Redirect" url="http://www.google.com" redirectType="Found"/>
</rule>

.aspx

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="/hm1">other site (http://www.google.com)</asp:HyperLink>
其他站点(http://www.google.com)

能否将
重定向类型
添加到重写映射中?不,不幸的是没有

为了实现您想要做的事情,您需要创建两个重写映射和两个重写规则-一个用于301重定向,一个用于302重定向

下面是一个可能的示例:



hi@Tom Hall,我会再问一个问题,如果请求的URL中的特定字符串匹配,我们可以重定向到其他域吗?请参阅文章中的“更新”部分并指导我。。!是的,你可以重定向到任何你想要的地方。谢谢!是的,这很有效!但我的重定向到其他网站不会工作,你能帮我吗?请查看我添加的规则并帮助我。。?我试图重定向到另一个网站使用上述'规则'中提到的“更新”部分,但它不会工作@TomHall如何将这些
apache
规则翻译成
iis(web.config)
-->谢谢!