Laravel路线根本不起作用

时间:2015-11-22 20:36:47

标签: php .htaccess laravel routes laravel-5

我的laravel路线根本不起作用。我试过这样的事情:

Route::get('welcome', function () {
    return View::make('welcome');
});

使用localhost / project / project / public / welcome访问它可以正常工作。我已经在很多方面尝试了它,但似乎路由没有工作,因为localhost / project / welcome显示404错误。我知道有一个类似的主题,但对我来说没有答案。请问有人帮帮我吗?

我的htaccess文件看起来像这样(我从未碰过它):

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

2 个答案:

答案 0 :(得分:2)

您需要编辑HTTP服务器以将文档根目录为project / project / public /

例如在Apache中你可以做类似的事情:

<VirtualHost *:80>                                                                                                                                                                                                                                                     
        ServerAdmin webmaster@localhost                                                                                                            
        DocumentRoot /var/www/project/project/public/

在Nginx中它会是这样的:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/project/project/public/;

答案 1 :(得分:1)

您已经说过,您可以通过
访问您的laravel应用程序 localhost/project/project/public/welcome。这是因为此路径是您启动应用程序的起始根路径。

允许您访问新路线的示例

Route::get('other_route', function () {
    return View::make('welcome');;
});

如果您要在浏览器中输入localhost/project/project/public/other_route

,则可以访问此代码

localhost/project/welcome无效,因为您的应用程序比此路径更深。

您应该为您的应用设置虚拟主机,以便您的路径可以是myapp.local/welcome myapp.local/other_route

或者访问您的应用程序,假设您的起点是http://localhost/project/project/public/