我在 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 文件的末尾
[编辑]
出于某种原因还必须授予某些文件权限。 (日志文件)。
每当我尝试使用一条路线时,我都会得到 "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 文件的末尾
[编辑]
出于某种原因还必须授予某些文件权限。 (日志文件)。