碰巧我需要紧急修复Codeigniter问题,而不熟悉该工具。
没有创建臭名昭着的您提交的URI已禁止使用字符 - 我可以通过设置$ config ['allowed_uri_chars']来修复 - 而且由于CI的内部重定向而不是404。< / p>
我很想了解这个问题的快速解决方法。
答案 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