前言说明
当 Discuz
的前端域名与源服务器上域名不一致时,在执行部分操作时会提示“抱歉,您的请求来路不正确或表单验证串不符...”,可进行如下修改:
解决方案
打开 source/class/helper/helper_form.php
文件,查找:
if($allowget || ($_SERVER['REQUEST_METHOD'] == 'POST' &&
在前方插入一行:
$subDomain = array('前端域名1', '前端域名2');
if(in_array($refererHost = preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']), $subDomain)) $_SERVER['HTTP_REFERER'] = str_replace($refererHost, preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST']), $_SERVER['HTTP_REFERER']);
修改后,当来源页面地址为前端域名时,自动将其替换为实际请求的网址,以此解决“请求来路不正确”问题。
特别鸣谢
转载自:大张小站