0

1.我正在关注CodeHappy:Using Controllers to learn to use laravel controllers,在我的PC “myproject/”指向“wamp/www/laravel/public”文件夹,当我尝试“myproject/account/login”时浏览器显示:


未找到

在此服务器上找不到请求的 URL /account/login。


2. 很明显,浏览器试图找到“account”文件夹而不是使用控制器,我在“public”下创建了“account”文件夹并再次尝试,我的猜测被证明是正确的。在使用控制器之前我应该​​在任何地方进行配置吗?

我的代码:

应用程序/控制器/account.php

<?php
class Account_Controller extends Base_Controller
{
    public function action_index(){
        echo "This is the profile page.";
    }
    public function action_login(){
        echo "This is the login form.";
    }
    public function action_logout(){
        echo "This is the logout action.";
    }
}

/application/routes.php

    Route::get('/', function()
    {
        return View::make('home.index');
    });
    Route::controller('account');
4

1 回答 1

1

@Phill Sparks 完全正确(完全正确!他已经使用 Laravel 多年了)。如果您的浏览器从服务器报告 404 ,除非您完全删除 404 事件,否则该请求甚至不会通过 Laravel。

试试/index.php/account/login。如果它有效,你就知道你的重写规则是拙劣的。如果它也不起作用,那么你手头有一个更严重的问题。

如果你使用的是 Apache,你应该在你的htaccess文件中找到 Laravel 的重写规则。如果您无法通过 htaccess 加载 mod_rewrite,则需要将它们迁移到您的服务器配置。

server如果您使用的是 nginx,则在您的块中将需要类似的内容:

    location / {
            try_files $uri $uri/ @laravel;
    }
    location @laravelDesktop {
            rewrite ^/(.*)$ /index.php?/$1 last;
    }

或者如果在子目录中

    location /my/subdir/ {
            try_files $uri $uri/ @laravel;
    }
    location @laravel {
            rewrite ^/my/subdir/(.*)$ /index.php?/$1 last;
    }
于 2013-04-05T15:06:31.633 回答