asp网站快照因转码导致404如何解决?

asp是动态网站,所展示的内容或者链接都是动态的。当百度收录后,会展现百度缓存快照的转码链接,对 "?" 会转为 "%3F";对"="会转为"%3D";如:

原始链接:https://www.aaa.com/SiteInfo.asp?SiteID=19262   

缓存链接:https://www.aaa.com/SiteInfo.asp%3FSiteID%3D19262

这样,从百度快照访问过去,会导致出现404页面。

思路是:进行伪静态转写,将缓存链接指向原始链接即可,步骤如下:

1.在根目录创建文件 go.asp,填入以下代码:

<%
 for each  k in request.ServerVariables
    'response.Write(k&"==="&request.ServerVariables(k)&"<br/>")
 next
 'response.write(request("cs"))
 response.redirect(request("cs"))
%>

2.在服务器端,设置伪静态规则,如下:

<?xml version="1.0" ?>
<rules>
    <rule name="asp_rewrite" stopProcessing="true">
        <match url="^(.*).asp(.*)$" ignoreCase="false"/>
        <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true"/>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true"/>
        </conditions>
        <action type="Rewrite" url="go.asp?cs={R:1}.asp{R:2}" appendQueryString="true"/>
    </rule>
</rules>

3.site域名,查看快照,通过缓存快照访问即可:

 

 

 

posted @ 2022-07-13 20:35  coderjim  阅读(64)  评论(0编辑  收藏  举报

更多知识请点击——

www.7017online.xyz