解决了博客部分日志评论后无法返回的问题

  几个月前,为了博客程序能够支持生成中文文件名,更利于搜索引擎抓取,对页面中的链接文件名使用了Server.URLEncode。

  这样子是解决了中文文件名的问题,但又来了个新的问题,某些日志在评论后点返回会提示404错误。

  因为并没有认为这是一个很大的问题和时间关系,一直都未研究此问题。今天仔细看了一下,发现出问题的日志都是文件名里含有特殊字符的,比如汉字,减号“-”等。问题的表现貌似是当评论完毕点返回的时候,返回的路径被进行了两次Server.URLEncode,所以会跳到一个根本不存在的文件上,于是,404了。

  继续研究发现,程序里一切都是没有问题的,问题的原因出在点击返回时,程序使用了Response的Redirect方法来实现页面的重定向。而这个Redirect方法会自动给提交给它的页面地址URLEncode编码一次,因为程序中使用统一的函数来获取一篇日志的文件名,获取到的文件名本身已经URLEncode编码过一次了,再编码一次,当然就出错了。

  怎么办呢?要是自己再写一个不进行编码的获取文件路径的函数,有点麻烦。要不,在Redirect重定向前把编码过的路径还原一下?嗯,是个好办法,就这么办。不过搞半天发现VBSCRIPT中好像没有还原URLEncode的函数,自己去实现又倍儿麻烦-_-||| 嗯,还是用JSCRIPT吧:

程序代码 程序代码
<script Language="JScript" runat="server">
//*************************************
//还原URLEncode
//*************************************
function URLDecode(url){
    return decodeURI(url);
}
</script>



评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.