且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException Laravel

更新时间:2022-03-23 22:29:28

Laravel中的NotFoundHttpException异常始终表示它无法为特定URL找到 router /strong>.在您的情况下,这可能是您的Web服务器配置,虚拟主机(站点)配置或.htaccess配置中的问题.

A NotFoundHttpException exception in Laravel always means that it was not able to find a router for a particular URL. And in your case this is probably a problem in your web server configuration, virtual host (site) configuratio, or .htaccess configuration.

您的public/.htaccess应该如下所示:

Your public/.htaccess should look like this:

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

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

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

如您所见,第一行IfModule mod_rewrite.c中存在一个条件,因此,如果未安装或启用mode_rewrite,则所有重写规则都将失败,并且

As you can see there is a condition in the first line IfModule mod_rewrite.c, so if you don`t have mode_rewrite installed or enabled, all rewrite rules will fail and this

localhost/Test/public/

可以正常工作,但不能这样:

Will work fine, but not this:

localhost/Test/public/test

另一方面,这也应该起作用,因为这是其原始形式:

In other hand, this one should work too, because this is its raw form:

localhost/Test/public/index.php/test

因为Laravel需要对其进行重写才能正常工作.

Because Laravel needs it to be rewritten to work.

请注意,您不应使用/public,您的网址应如下所示:

And note that you should not be using /public, your URLs should look like this:

localhost/Test/

这是另一个线索,表明虚拟主机的文档根目录配置不正确或未指向/var/www/Test/public或应用程序所在的路径.

This is another clue that your virtual host's document root is not properly configured or not pointing to /var/www/Test/public, or whatever path your application is in.

所有这些假设您正在使用Apache 2.

All this assuming you are using Apache 2.