0

我有一个使用 CodeIgniter 构建的应用程序,当某些事件发生时,第三方服务(电子邮件服务提供商)正在发出包含 POST 数据的 http 请求。问题是,我无法完全修改此第 3 方服务发出请求的 url,具体来说,它向以w_4.php我指定的域和目录命名的文件发出请求。

我不想在 CodeIgnitier 堆栈之外拥有这个单独的文件,而是使用 .htaccess 将对该文件发出的所有请求重写到我的 codeigniter 应用程序中的控制器,即api/my_controller/my_method. 但我需要完整的请求中的 POST 数据,所以我认为无法使用重定向。

我在我的 .htaccess 中尝试过这样的事情:

RewriteCond $1 (w_4\.php)
RewriteRule ^(.*)$ index.php/api/my_controller/my_method

虽然请求确实被路由到 codeigniter,但即使该控制器/路由确实存在,我也只会得到 404。

4

1 回答 1

1

答案是P在 RewriteRule 中使用代理标志。如此处详细说明https://stackoverflow.com/a/359224/192694,该标志指示应将请求原封不动地传递给代理模块,包括其 POST 数据。

欲了解更多信息:http ://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_p

于 2013-03-28T19:12:12.880 回答