使Codeigniter 2.1.3允许Facebook反向链接

时间:2012-11-07 18:47:20

标签: php codeigniter

碰巧我需要紧急修复Codeigniter问题,而不熟悉该工具。

简单问题:我如何允许链接从Facebook ,如http://www.xxx.de/?fb_action_ids=4811819099741&fb_action_types=og.likes&fb_source=timeline_og&action_object_map=%7B%224811819099741%22%3A447766801925104%7D&action_type_map=%7B%224811819099741%22%3A%22og.likes%22%7D&action_ref_map=%5B%5D

没有创建臭名昭着的您提交的URI已禁止使用字符 - 我可以通过设置$ config ['allowed_uri_chars']来修复 - 而且由于CI的内部重定向而不是404。< / p>

我很想了解这个问题的快速解决方法。

3 个答案:

答案 0 :(得分:1)

如果您可以使用.htaccess,则可以重定向到任何地方。这避免了任何CI错综复杂。

RewriteCond %{QUERY_STRING} .
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule ^ /index.php/? [L]

https://stackoverflow.com/a/4227616/183254


更新:nginx的可能工作重写

if ($args ~ fb_action_ids=(\d+)){
    rewrite ^ http://example.com/ permanent;
}

答案 1 :(得分:1)

在application / config / config.php中设置这些变量:

$config['allow_get_array']      = TRUE;
$config['enable_query_strings'] = TRUE; // This is normally FALSE

如有必要,请调整$config['permitted_uri_chars']。我是a-z 0-9~%.:_\-#!,几乎可以用于所有事情。

我不确定你需要对fb数据做什么,所以我只能说这些选项设置,理论上你应该能够访问facebook提供的get vars。

答案 2 :(得分:1)

codeigniter期望URI的第一部分是它加载的控制器,然后第二部分将是方法,之后的每个部分都是加载方法的参数。快速解决方案是使用正则表达式设置路径,就像在MVC3中一样,并将其指向控制器和方法。然后你可以从那里解析uri。

匹配?fb_action_ids并将其更改为/ controller / method /?fb_action_ids并从那里开始。也许有了更多的信息,我可以进一步帮助你,但如果这对你有用,这应该是最快的方式来恢复和运行,而不必重新配置一堆东西。

http://ellislab.com/codeigniter/user_guide/general/routing.html