通常情况下,我使用.htaccess中的简单规则在Apache ModRewrite服务器上部署我的网站,将地址重定向到www而不是www:www.example.com => example.com
我目前正在使用IIS + UrlRewrite 在Windows服务器上部署网站。 在我的web.config文件中,您实现了重定向设置,我有以下规则来删除www地址:
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
</conditions>
<action type="Redirect" url="http://{C:1}/{R:1}" redirectType="Permanent" />
</rule>
通过浏览器,重定向工作完美!
但是,当重定向规则处于活动状态时,一些外部工具(如Facebook和Google + 1按钮)无效。
例如,Google + 1按钮发出错误点击它(在请购单中单击按钮我可以看到错误:“code”:-32099,“message”:“Backend Error”)。
已经与Facebook在尝试使用以下工具使用www地址分析网站时意识到问题:http://developers.facebook.com/tools/debug
Facebook错误:URL Parsing Error: Error parsing the URL typed, no data was collected.
禁用重定向,Google + 1按钮和Facebook的分析工具完美运行。
注意:该原则不会通知网站,因为我想留下禁用的规则来查找解决方案。如果有必要通知链接,我将编辑此问题。
修改 经过一些测试后,无论是否启用规则,我的+1按钮问题仍然存在。 我在Google Code上找到了一个关于同样问题的帖子,但不明白应该做什么:
问题仅发生在网站上。我创建了一个带有两个+1按钮的测试页面,一个指向该站点并指向Stackoverflow。通过单击Stackoverflow按钮工作,但不是另一个: