每当我尝试使用路线时,我都会收到“找不到对象”和“错误 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。