我在应用程序根目录中有一个单独的.config
文件,其中包含Mapped URLS for redirect
并在.config
中为web.config
引用了此301 Permanent Redirect
文件!这很好用。
现在,我还要添加一些链接,这些链接将重定向为302状态代码。如何在外部.config文件中添加302重定向并相应地重定向。
rewritemaps.config
<rewriteMaps>
<rewriteMap name="Redirects">
<add key="/oldcellphone" value="/newcellphones.aspx" />
</rewriteMap>
</rewriteMaps>
我们可以在此文件中指定重定向类型,即301/302吗?
的web.config
<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>
注意:目前文件'rewritemaps.config'
中的所有链接都设置为301 Status
中的web.config
。
我们可以在rewritemaps.config中添加如下内容并相应地重定向:
<add key="/oldcellphone" value="/newcellphones.aspx" [RedirectType=301] />
<add key="/oldphone" value="/newphones.aspx" [RedirectType=302] />
大约有1000 links of 301 Status
和大约400 links for 302 Status
。如果在external file(rewritemaps.config)
中无法实现,那么请建议首选方式吗?
更新 如果请求的URL中有特定的字符串匹配,您能帮助我重定向到另一个站点(不同的域)。 例如:如果请求的URL包含&#34; / hm1&#34;然后重定向到不同的网站。即http://www.google.com
的Web.config
<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>
答案 0 :(得分:0)
您可以将RedirectType
添加到重写地图中吗?不,不幸的是没有。
要实现您要做的事情,您需要创建两个重写映射和两个重写规则 - 一个用于301重定向,一个用于302重定向。
这是一个可能看起来如何的例子:
<rewrite>
<rules>
<rule name="301Redirects" stopProcessing="true">
<match url=".*" />
<action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" />
<conditions>
<add input="{301Redirects:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
</rule>
<rule name="302Redirects" stopProcessing="true">
<match url=".*" />
<action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Found" />
<conditions>
<add input="{302Redirects:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="301Redirects">
<add key="/oldurl" value="/newurl" />
</rewriteMap>
<rewriteMap name="302Redirects">
<add key="/oldcellphone" value="/newcellphones.aspx" />
</rewriteMap>
</rewriteMaps>
</rewrite>