悟途网移动版

手机

悟途网 > 技巧 > 手机 > 正文

伪静态网站分享到微信链接打不开报404错误的解决办法

2015-08-17 20:54 悟途网 T

最近有好友反映用百度一键分享,分享网页链接到微信朋友圈的时候,发现链接无法打开,提示无法找到该页404错误,同样分享到QQ、微博等链接能正常访问,这么明显的错误,百度和腾讯应该不会忽略吧。

伪静态网站分享到微信链接打不开报404错误的解决办法

分析了一遍网站,确实是微信朋友圈无法分享网站链接。但是通过微信扫一扫能正常浏览网页,点击分享到朋友圈后,在从朋友圈去访问的时候,提示无法找到该页,报404错误。

经反复检测,排除了分享代码的问题,和服务器配置问题。我开始怀疑伪静态规则,开启URL重写造成的,我关掉了伪静态,让网页形成动态链接, 微信朋友圈分享正常显示,无报错。最后发现问题所在了,我们来对比下分享的网址:

分享到QQ空间:

http://www.xxx.com/article/20150817000515.html#0-qzone-1-1476-d020d2d2ad1440

分享给QQ好友:

http://www.xxx.com/article/20150817000515.html#0-sqq-1-7608-9737f6f9e09dfabfee85

分享到微信朋友圈:

http://www.xxx.com/article/20150817000515.html?from=timeline&isappinstalled=0

这样一对比问题就明显了,伪静态规则问题,前面能正常访问的地址后面都是#开始加其他代码的,微信是“ ? ”开始加其他代码的,试着把“ ? ”改成“ # ”能正常访问链接。

知道问题所在就好办了,修改伪静态规则,在伪静态规则里面加上 (.*) 就可以了,也就是 在静态网址结束后 html 后面加上(.*) 即可。

例如规则变动如下:

RewriteRule ^article/(.+).html(.*)  article.php?name=$1 [L]

RewriteRule ^product/(.+).html(.*)  product.php?name=$1 [L]

RewriteRule /([0-9]+)\.html(.*)  /Contents\.php\?w=$1 [I]

至此问题解决!