我将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>
答案 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