【问题标题】:Unwanted redirect in LaravelLaravel 中不需要的重定向
【发布时间】:2015-12-20 14:13:48
【问题描述】:

我已将 laravel 安装在名为 march_madness 的目录中。

我已经设置了一些基本的控制器,例如 UsersController 和 SessionsController。

例如,当我转到domain.com/march_madness/login 时,它会打开一个登录表单,因为我的routes.php 中有这个:

Route::get('login', 'SessionsController@create');

但是,对于users,我有一个问题,其中包括以下内容 - 当我导航到 domain.com/march_madness/users,而不是使用用户控制器的 index() 方法时,它重定向到 domain.com/users(不知何故删除了march_madness 来自 URL)。

这是我的routes.php 中与用户相关的部分:

Route::get('register', 'UsersController@create');
Route::resource('users', 'UsersController');
Route::get('memberhome', 'UsersController@area');
Route::get('users/verify/{code}', 'UsersController@verify');

这是UsersController.php的相关部分:

class UsersController extends \BaseController {

    protected $user;

    public function __construct(User $user)
    {
        $this->user = $user;
    }

    public function index()
    {
        return "test";
    }

    ...

}

如果我将 return "test"; 替换为其他任何内容(例如从数据库中获取用户记录),则没有任何变化,它仍然只是重定向。

.htaccess 中的任何内容我都没有更改。

有什么想法吗?

【问题讨论】:

  • 您在应用配置中正确设置了您的网址吗?
  • 是的,正如我所说,所有其他 URL 都可以正常工作,只是不是这个。例如 /march_madness/sessions 将正确打开会话控制器的 index() 方法。
  • 访问domain.com/march_madness/users时的响应顺序是什么?这可能会提供线索。使用浏览器调试工具的网络选项卡或 Apache 的访问日志。
  • 重定向通常不会发生在 Laravel 中,它们通常发生在 Apache 中。当您点击 URL 时,您的 apache 日志文件会显示什么内容?
  • 我确信默认情况下 Laravel 4 有一些用于用户身份验证的“过滤器”设置。这些过滤器之一可能正在捕获您的请求并将其重定向。

标签: php laravel laravel-4 laravel-routing


【解决方案1】:

同样的事情发生在我身上一次,原因是 route.php 文件中缺少 ' / ' 例如

Route::resource('/users', 'usercontroller');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 2017-04-17
    • 2022-01-22
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多