最近接到一些站长朋友咨询,使用POSCMS制作的网站开启伪静态后,分享网站的资讯、产品等详情页链接到微信的时候,发现链接无法打开,提示无法找到该页404错误。
经检测,是伪静态规则开启URL重写造成的,首先我来对比下分享前后的URL:(以下为示例)
分享前:https://www.iyuance.com/show-11.html
分享后:https://www.iyuance.com/show-11.html?from=singlemessage
因为微信分享后的URL会强制加一个字符串,分享后的URL打开是无法打开页面404,我们试着把分享后的网页链接中的 ? 改成 # 能正常访问链接。这样一对比问题就能确定为是伪静态规则问题。解决办法就是修改伪静态规则,在伪静态规则里面加上 (.*) 就可以了。
POSCMS伪静态网站分享到微信链接打不开报404错误的解决办法:修改config/rewrite.php伪静态解析规则,这里以详情页示例。
修改前: "show-([0-9]+).html" => "index.php?c=show&id=$1",//详情页
修改后: "show-([0-9]+).html(.*)" => "index.php?c=show&id=$1",//详情页
其他页面修改伪静态规则的方法类似,在静态网址结束后 html 后面加上(.*) 即可解决POSCMS伪静态分享微信页面报错问题。另外,如果尾部加 (.*) 不行的话,还可以改成:\?(.*) 。