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域名,查看快照,通过缓存快照访问即可: