我有一个玩具Facebook应用程序我正在玩,所以我可以理解它是如何工作的。如果您像这样使用应用程序就可以了:http://apps.facebook.com/pushup-challenge/(并连接它)。但是,如果您从Facebook页面转到它,FB会使用URL http://apps.facebook.com/pushup-challenge/?ref=bookmarks。
在我的日志文件中,我看到FB正在POST数据并包含/?ref = bookmarks以调用我的codeigniter系统。这导致它要么说“无效的URI参数”,要么给我404,这取决于我是否编辑了system / core / URI.php文件以将rawurlencode()添加到特定的调用中。
我也尝试过使用mod_rewrite去除query_string,但是因为它是POSTing,所以它似乎没有工作(虽然我不确定为什么)。
有没有其他人遇到这个?你是怎么解决的?
提前致谢, 汉斯
答案 0 :(得分:2)
尝试$config['uri_protocol'] = “PATH_INFO”;
并设置enable_query_strings = TRUE
要么
设置
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-?=';
在config.php中
答案 1 :(得分:0)
因为它没有按名称调用你的文件(只是?ref =书签),所以服务器通过标准的默认文件运行:index.htm,index.html,index.asp。因为您需要接受POST,所以您需要一个允许POST到htm&的服务器。如果你选择使用那些HTML。 Index.asp将接受大多数服务器上的POST,这对我有用。 解决方案:添加一个文件(index.asp),该文件调用您在应用程序设置中命名的真实应用程序。