0

每当我尝试使用路线时,我都会收到“找不到对象”和“错误 404”。我在 Manjaro/Arch 上运行我的服务器(无论如何在本地)。另外,这是我第一次使用 Laravel。

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

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

我在 httpd.conf 中将 Allow override 更改为 All,这似乎为 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。

4

1 回答 1

1

不得不补充:

LoadModule rewrite_module modules/mod_rewrite.so

到我的 httpd.conf 文件的末尾

[编辑]

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

于 2018-04-24T18:36:30.627 回答