1

ツールに慣れていないときに、Codeigniter の問題を緊急に修正する必要がある場合があります。

簡単な質問: Facebook からのリンクを許可するにはどうすればよいですか? %3A%22og.likes%22%7D&action_ref_map=%5B%5D

悪名高い送信した URI には許可されていない文字が含まれています(これは $config['permitted_uri_chars'] を設定することで修正できます)、CI の内部リダイレクトのために 404 も作成しません。

その問題の簡単な修正方法を知りたいです。

4

3 に答える 3

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;
}
于 2012-11-07T19:40:41.790 に答える
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 にアクセスできるはずです。

于 2012-11-07T19:47:20.117 に答える
1

codeigniter は、URI の最初の部分がロードするコントローラーであると想定し、2 番目の部分がメソッドであり、その後のすべてのセグメントがロードされるメソッドのパラメーターであると想定します。迅速な解決策は、MVC3 の場合のように正規表現を使用してルートを設定し、それをコントローラーとメソッドにポイントすることです。そこから uri を解析できます。

一致する ?fb_action_ids を /controller/method/?fb_action_ids に変更して、そこから移動します。もう少し情報があれば、さらにお役に立てるかもしれませんが、これがうまくいく場合は、多くのことを再構成することなく、元に戻して実行するための最も簡単な方法です。

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

于 2012-11-07T21:01:52.587 に答える