最近有客户反映用百度分享等分享到QQ空间,完全正常的,但是分享网页链接到微信朋友圈的时候,发现链接无法打开,提示无法找到该页404错误,同样分享到QQ、微博等链接能正常访问,这样的错误不应该是百度与腾讯的问题。
仔细看了一下地址
原来错误出在分享之后的网页地址上,分享到QQ空间上的地址后面加了#号+数字字母,而分享到微信的是在后面加了?号+数字字母。
以下是代码比较
分享到QQ空间:http://www.qwbm.com/about/index.htm#0-qzone-1-1476-d020d2d2ad1440
分享给QQ好友:http://www.qwbm.com/about/index.htm#0-sqq-1-7608-9737f6f9e09dfabfee85
分享到微信朋友圈:http://www.qwbm.com/about/index.htm?from=timeline&isappinstalled=0
如果网站是使用了伪静态的话,在后面加了?号+数字字母后就找不到,所以出错了。
动态与生成后的静态页面分享到微信好友、微信朋友圈时可以正常访问
但是利用httpd.ini做的伪静态页面分享微信好友、微信朋友圈时却不可以访问,提示链接打不开404错误
伪静态规则,在伪静态规则里面加上 (.*) 就可以了,也就是在静态网址结束后 html 后面加上(.*) 即可,即需要分享的页面规则的.html后面加(.*),或者干脆就整站的伪静态规则的.html后面都加。
示例如下:
PHP版本
RewriteRule ^show/(.+).html(.*) show.php?name=$1 [L]
RewriteRule /([0-9]+)\.html(.*) /show\.php\?w=$1 [I]
ASP版本
RewriteRule \/show.html(.*) /show.asp
RewriteRule \/show-(.*)\.html(.*) /show\.asp\?did=$1 [I]