Laravel 5.8显示404 Not Found错误

时间:2019-03-02 18:56:31

标签: laravel-5 laravel-5.8

我将public的index.php文件路径更改为root。在根路径(laravel 5.7)中添加.htaccess文件后,每个页面都可以正常工作。但是在laravel 5.8中,当我单击另一个页面时,它显示404 Not Found。

我的.htaccess文件在下面。

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine On
#Send request via index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d``
RewriteRule ^(.*)$ index.php/$1 [L]

</IfModule> 

2 个答案:

答案 0 :(得分:1)

Laravel .htaccess文件的内容应如下所示:

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

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

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

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

您的webroot必须设置为/ public目录。不要尝试搜索其他将index.php和.htaccess文件从/ public移至Laravel应用程序根目录的解决方案。绝对没有理由将Webroot从/ public移至/。 index.php位于/ public中是有原因的。如果您的Web主机不提供将Web根目录移动到另一个目录的功能,请切换主机。

答案 1 :(得分:0)

可能是您已将文件夹创建为“示例”,并尝试通过示例访问它 即

localhost/Example/public

至今仍可以访问

localhost/example/public