Laravel如何路由旧网址

时间:2013-08-11 13:48:14

标签: laravel laravel-4 routing url-routing

我正在使用Laravel 4。

我有一个需要可路由的旧网址。它的目的是什么并不重要,但它存在于paypal系统中,并且会定期调用但不能更改(我知道这很荒谬)。

我意识到这不是url应该在Laravel中采用的格式,但这是将被调用的url,我需要找到一种方法来路由它:

  

http://domain.com/forum/index.php?app=subscriptions&r_f_g=xxx-paypal

(每次请求时xxx都不同)

我无法弄清楚如何用laravel路由它,我想将它路由到方法PaypalController @ ipbIpn所以我尝试过这样的事情:

Route::post('forum/index.php?app=subscriptions&r_f_g={id}-paypal', 'PaypalController@ipbIpn');

但这不起作用,事实上我甚至无法让它发挥作用:

Route::post('forum/index.php', 'PaypalController@ipbIpn');

但这会:

Route::post('forum/index', 'PaypalController@ipbIpn');

所以问题是我如何使用Laravel路由网址,因为它位于此问题的顶部?

为了完整性,我应该说这总是一个帖子而不是一个获取,但这不应该对解决方案产生任何影响。

2 个答案:

答案 0 :(得分:0)

使用此:

Route::post('forum/{file}', 'PaypalController@ipbIpn');

然后在控制器中,使用

    public function forum($file) {
            $request = Route::getRequest();

            $q = (array) $request->query; // GET
            $parameters = array();
            foreach($q as $key => $pararr) {
                $parameters = array_merge($parameters, $pararr);
            }
    }

然后,您可以通过例如

访问获取参数
echo $parameters['app'];

答案 1 :(得分:0)

您可以使用路由重定向来屏蔽和终止.php route ex:

Route::get('forum/index', ['uses'=> 'PaypalController@ipbIpn']);
Route::redirect('forum/index.php', 'forum/index');