php - Laravel 路由映射问题:无法将 url 映射到控制器方法
问题描述
我有一个由 apache 提供服务的 laravel 项目,位于 apache 根文件夹中,可通过 http://hostname/foo 访问,我无法将 url 映射到控制器方法。以下是带有方法的控制器(为便于说明而简化)。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class ShowController extends Controller
{
public function show($id)
{
return 'show: ' . $id;
}
}
以下是routes/web.php中的路由映射
Route::get('show/{id}', 'ShowController@show');
问题是像下面这样的网址不起作用。
http://hostname/foo/show/1
上面的 url 把我带到了 phpinfo()。但是以下网址给出了预期的结果。
http://hostname/foo/public/show/1
以下映射也不起作用。
Route::get('/show/{id}', 'ShowController@show'); // with a leading slash
Route::get('show/{id}', 'ShowController@show')->name('show');
Route::get('/show/{id}', 'ShowController@show')->name('show'); // with a leading slash
我感谢任何信息或建议。谢谢。我的php是7.1。
解决方案
Laravel 的这个入口点永远是/public
.
您可以在此处找到如何配置 Apache:
如何配置 apache Web 服务器以部署 laravel 5
推荐阅读
- ios - 为 UITableView 中的多个单元格提供不同数量的行
- python - 优化忽略某些标签值的损失函数
- java - 如何使投射的光线角度相对于鼠标位置?
- python - 自定义模块中导入的 Python 库无法全局识别
- ruby - 在打开的单例类中调用单例类方法
- react-native - React Native 中的导航返回点击事件
- aspnetboilerplate - 如何从hangfire API 获取 PerformContext
- jstree - JSTree拖放检查回调
- bash - 为什么我的 bash 循环生成 $i-$j_filename 不适用于内部循环,所以我只能得到四个文件(1-4_filename、2-4_filename、...)?
- python - 命令“python3 -m pip install [...]”失败,错误代码 1 为无