网站在未添加证书前用http访问时前台后一切正常,添加证书开启https访问后,网站前台访问正常,但网站后台在录时会报错“非法外部提交被禁止”。
原因:个别cms系统函数判断出错,在cms程序文件inc/AspCms_CommonFun.asp文件中写了判断逻辑,如果判断为“外部提交”则禁止登陆后台。具体的判断逻辑可能像下面一样:
Function isOutSubmit()
dim server1, server2
server1=getRefer
server2=getServername
if Mid(server1, 8, len(server2)) <> server2 then
isOutSubmit=true
else
isOutSubmit=false
end if
End Function
server1获取当前url,server2获取域名。旨在判断当前url和网站域名是否匹配。
这种判断机制在http://访问时是可用的,因为第八个字符开始就是域名。但如果加了证书https://就会多一个字符,导致判断始终是不匹配的。
解决办法:
找到inc/AspCms_CommonFun.asp文件中的isOutSubmit()函数。
修改该函数,增加对HTTPS的判断
Function isOutSubmit()
dim server1, server2, num
server1=getRefer
server2=getServername
if Left(server1,5)="https" then
num=9
else
num=8
end if
if Mid(server1, num, len(server2)) <> server2 then
isOutSubmit=true
else
isOutSubmit=false
end if
End Function 