我在 Laravel、Apache 中的路由 return 错误

My routes return errors in Laravel, Apache

每当我尝试使用一条路线时,我都会得到 "object not found" 和 "error 404"。我 运行 在 Manjaro/Arch 上连接我的服务器(无论如何在本地)。另外,这是我第一次使用 Laravel.

我正在为我的服务器使用 Apache。它是 运行ning,因为我可以从 127.0.0.1/path/to/public/ 加载 Laravel 页面。我一直在为其他项目使用同一台服务器,没有遇到任何问题。

我什至尝试将文档根目录更改为实际根目录,也就是说,我现在可以 运行 使用 127.0.0.1

我在 httpd.conf 中将允许覆盖更改为全部,这似乎为 99% 的人解决了这个问题。我确保在 .conf 编辑后重新启动服务器。

我的web.php:(第一条路线是我为这个项目编写的唯一代码)

Route::get('/hello',function(){
    return 'Hello World';
});

Route::get('/', function () {
    return view('welcome');
});

命令的输出php artisan route:list

+--------+----------+----------+------+---------+--------------+
| Domain | Method   | URI      | Name | Action  | Middleware   |
+--------+----------+----------+------+---------+--------------+
|        | GET|HEAD | /        |      | Closure | web          |
|        | GET|HEAD | api/user |      | Closure | api,auth:api |
|        | GET|HEAD | hello    |      | Closure | web          |
+--------+----------+----------+------+---------+--------------+

从我看到的这个问题的其他解决方案来看,我的 .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>

这不是一个 Laravel 问题我想我 运行 php artisan serve 我可以使用路由查找,即 127.0.0.1:8000/hello 将打印 hello world在我的浏览器中。

必须添加:

LoadModule rewrite_module modules/mod_rewrite.so

到我的 httpd.conf 文件的末尾

[编辑]

出于某种原因还必须授予某些文件权限。 (日志文件)。