更换网站 Web Server:Microsoft-IIS/7.5支持 web.config实现整站批量301永久重定向 xiuno建站日记

已认证 八彩五月 2018-8-26 8104


    web.config设置301有两种情况:1、域名间的301,如:8c5.cn 301到 www.8c5.cn;2:网站内部url间的,就是动态url 301永久重定向到静态或者伪静态后的url,如:www.b1y.cn/news.asp?id=1 301到www.b1y.cn/news_1.html。下面来介绍下这两种情况如何实现。

1、域名间的301重定向

这种情况用的比较多,方法也比较简单,在web.config里的规则如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <system.webServer> 
    <rewrite>
      <rules>
        <rule name="b1y 301 Redirect" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^8c5.cn$" />
          </conditions>
          <action type="Redirect" url="http://www.8c5.cn/{R:0}"
          redirectType="Permanent" />
        </rule>  
      </rules>
    </rewrite>
  </system.webServer>
</configuration>


2、全站进行310永久重定向,即动态url301永久重定向到静态或者伪静态后的url

在网站做伪静态或者静态化处理后,让动态的url转向到静态或者伪静态后的url,避免同一个页面有几个url出现或者用户体验的角度考虑,就需要用这种方法了。这种方式给大家说规则之前首先强调几点:

(1)网站首先要做好伪静态或者静态化处理(web.config里做伪静态处理下次分享);

(2)动态url里一般会出现&,?等符号,这些符号需要转义或者去除属性才能使用,不然你在做301的时候会不成功,"?"改为"&amp","?"去除属性用"/?"(带?问号的url跳转时asp.net会自动在后面加上问号及参数,所以遇到?时需要做去除属性处理)。

下面给大家举个例子(自己亲测可用):

把www.8c5.cn/news_show.asp\?Newsid=1 301到www.8c5.cn/news_show_1.html,这里动态url里的Newsid=1,是个变量,所以最终规则如下:

<rule name="news_show301" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www.8c5.cn$" />
<add input="{HTTP_URL}" pattern="^/news_show.asp\?Newsid=(\d+)$" />
</conditions>
<action type="Redirect" url="http://www.8c5.cn/news_show_{C:1}.html" appendQueryString="false" redirectType="Permanent" />
</rule>

其实第一种和第二种情况都是在一个web.config里书写的,整合后的完整规则为:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <system.webServer> 
    <rewrite>
      <rules>
       
        <rule name="b1y 301 Redirect" stopProcessing="true">
          <match url=".*" />
          <conditions>
          <add input="{HTTP_HOST}" pattern="^8c5.cn$" />
          </conditions>
          <action type="Redirect" url="http://www.8c5.cn/{R:0}"
          redirectType="Permanent" />
        </rule>
         
        <rule name="news_show301" stopProcessing="true">
          <match url=".*" />
          <conditions>
          <add input="{HTTP_HOST}" pattern="^www.8c5.cn$" />
          <add input="{HTTP_URL}" pattern="^/news_show.asp\?Newsid=(\d+)$" />
          </conditions>
          <action type="Redirect" url="http://www.8c5.cn/news_show_{C:1}.html"           appendQueryString="false" redirectType="Permanent" />
        </rule>
               
      </rules>
    </rewrite>
  </system.webServer>
</configuration>



 xiuno建站一站式服务QQ:312215120
最新回复 (1)
  • bevah 2018-9-7
    2
    感谢站长
    0
返回
首页
插件
搜索