最近有客戶反映用百度分享等分享到QQ空間,完全正常的,但是分享網頁鏈接到微信朋友圈的時候,發現鏈接無法打開,提示無法找到該頁404錯誤,同樣分享到QQ、微博等鏈接能正常訪問,這樣的錯誤不應該是百度與騰訊的問題。
仔細看了一下地址
原來錯誤出在分享之后的網頁地址上,分享到QQ空間上的地址后面加了#號+數字字母,而分享到微信的是在后面加了?號+數字字母。
以下是代碼比較
分享到QQ空間:http://www.www.reapst.com.cn/about/index.htm#0-qzone-1-1476-d020d2d2ad1440
分享給QQ好友:http://www.www.reapst.com.cn/about/index.htm#0-sqq-1-7608-9737f6f9e09dfabfee85
分享到微信朋友圈:http://www.www.reapst.com.cn/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]