【问题标题】:Laravel how to route old urlsLaravel如何路由旧网址
【发布时间】:2013-08-12 21:57:33
【问题描述】:

我正在使用 Laravel 4。

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

我意识到这不是 Laravel 应该采用的 url 格式,但这是将被调用的 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 路由 url,因为它在这个问题的顶部?

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

【问题讨论】:

    标签: laravel laravel-4 routing url-routing


    【解决方案1】:

    您可以使用路由重定向来屏蔽和结束 .php 路由 ex:

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

    【讨论】:

      【解决方案2】:

      使用这个:

      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'];
      

      【讨论】:

      • 你测试过这个吗?它似乎不起作用,它只是给出了 404 错误,就像我在原始问题中所说的那样 forum/index.php 甚至不起作用,我认为带有扩展名的 laravel 路由文件可能存在问题
      • 仍然不起作用,它可以在 url 中没有“.php”的情况下工作,只使用索引,但如果它更改为 index.php,它会返回 NotFoundHttpException
      • @FreezeDriedPop 为我工作,你确定你在做一个发布请求吗?
      • @FreezeDriedPop 你也正确链接到公用文件夹了吗?
      • 是的,该应用程序在其他方面都运行良好。我不完全确定您为什么使用“论坛”方法,为什么会这样称呼?它肯定会调用 ipbIpn()。无论哪种方式,它都不会调用。即使是简单的也不行 Route::get('forum/{file}', function(){return 'test';});这对你有用吗:S
      猜你喜欢
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 1970-01-01
      相关资源
      最近更新 更多