我正在开发一个网站,我想将它与Facebook集成,允许用户在他们的FB墙上分享我的网站页面。我的问题在以下几行中解释,我的问题在最后。
我在.htaccess
文件中使用以下网址重写规则:
RewriteRule ^([a-zA-Z0-9_-]+)\/?([a-zA-Z0-9_-]+)\/?$ index.php?p1=$1&p2=$2
这意味着它会将http://address/parameter1/parameter2重写为http://address/index.php?p1=parameter1&p2=parameter2。
当我在FB上发布http://address/parameter1/parameter2时,它只会显示该网址下的重写网址。
我在FB上发布了http://address/index.php?p1=parameter1&p2=parameter2,它会显示我想要显示的信息,以及我在元标记中添加的信息。
我尝试在FB调试器(http://developers.facebook.com/tools/debug)上调试http://address/parameter1/parameter2,我将收到错误消息: “无法访问...的页面,因为服务器返回了状态代码400。”
有什么办法可以纠正吗?也就是说,实际上使动态链接的行为类似于静态链接,并使任何链接它的人都透明了吗?
编辑:
重写规则中的这一更改应解决问题: RewriteRule ^([a-z0-9 _-] +)/?([a-z0-9 _-] +)/?$ index.php?p1 $ 1& p2 = $ 2 [L,NC]
我还改变了PHP中的重定向。
这解决了我的问题。
答案 0 :(得分:0)
我有类似的问题,除了我动态地管理网址重写。 我目前是一个不允许通过htaccess(free.fr)重写URL的网络主机
动态标准网址处理得当。但不是重写的网址。
考虑到标题状态代码,您将如何摆脱这种情况?
我能做的是做一个重定向而不是包含生成html输出代码的脚本。 由于url中添加了一个特殊的参数,只需告诉处理程序在include和redirect之间切换。 但这不是一个很好的解决方案。