最近有好友反映用百度一键分享,分享网页链接到微信朋友圈的时候,发现链接无法打开,提示无法找到该页404错误,同样分享到QQ、微博等链接
能正常访问,这么明显的错误,百度和腾讯应该不会忽略吧。
接报后,我专门分析了一遍他公司的网站,确实是微信朋友圈无法分享网站链接。但是通过微信扫一扫能正常浏览网页,点击分享到朋友圈后,在
从朋友圈去访问的时候,提示无法找到该页,报404错误。
经反复检测,排除了分享代码的问题,和服务器配置问题。我开始怀疑伪静态规则,开启URL重写造成的,我关掉了伪静态,让网页形成动态链接,
微信朋友圈分享正常显示,无报错。最后发现问题所在了,我们来对比下分享的网址:
分享到QQ空间:
http://www.imaoye.com/article/20141015000515.html#0-qzone-1-1476-d020d2d2a4e8d1a374a433f596ad1440
分享给QQ好友:
http://www.imaoye.com/article/20141015000515.html#0-sqq-1-7608-9737f6f9e09dfaf5d3fd14d775bfee85
分享到微信朋友圈:
http://www.imaoye.com/article/20141015000515.html?from=timeline&isappinstalled=0
这样一对比问题就明显了,伪静态规则问题,前面能正常访问的地址后面都是#开始跟统计代码的,微信是?开始跟进的,试着把?改成#能正常访
问链接,哈哈。
知道问题所在就好办了,修改伪静态规则,在伪静态规则里面加上 (.*) 就可以了,也就是 在静态网址结束后 html 后面加上(.*) 即可。
如:
RewriteRule ^article/(.+).html(.*)$ article.php?name=$1 [L]
RewriteRule ^product/(.+).html(.*)$ product.php?name=$1 [L]
至此问题解决!