Lumen 在没有 public/index.php 的 RoutesRequests.php 中给出 NotFoundHttpException
Posted
技术标签:
【中文标题】Lumen 在没有 public/index.php 的 RoutesRequests.php 中给出 NotFoundHttpException【英文标题】:Lumen gives NotFoundHttpException in RoutesRequests.php without public/index.php 【发布时间】:2017-03-19 13:56:21 【问题描述】:在没有 public/index.php 的情况下访问时,我服务器中的 Lumen 安装出现 NotFoundHttpException。
Apache 配置:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/myapi/public
<Directory /var/www/html/myapi>
AllowOverride All
</Directory>
ErrorLog $APACHE_LOG_DIR/error.log
CustomLog $APACHE_LOG_DIR/access.log combined
</VirtualHost>
.htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
目录结构:
> var/www/html
> ------------/myapi/ (lumen application)
> ------------/myapi/public/
var/www/html/myapi/public 中的 index.php
$app->run($app->make('request'));
NotFoundHttpException:
-
在 RoutesRequests.php 第 461 行
在 RoutesRequests.php 第 398 行中的 Application->handleDispatcherResponse(array('0'))
在 Application->Laravel\Lumen\Concernsclosure() 在 RoutesRequests.php 第 650 行
在 RoutesRequests.php 第 400 行中的 Application->sendThroughPipeline(array(), object(Closure))
在 RoutesRequests.php 第 341 行中的 Application->dispatch(object(Request))
在 Application->run(object(Request)) in index.php 第 30 行
【问题讨论】:
很可能您的索引没有路由 【参考方案1】:问题解决了
$app->run();
在/public/index.php
到
$request = Illuminate\Http\Request::capture();
$app->run($request);
【讨论】:
【参考方案2】:NotFoundHttpException 当您的请求未在route.php
中列出时给出
$app->get('request', function()
return view('your view file');
);
【讨论】:
我确实在流明 5.3 的 /var/www/html/myapi/routes/web.php 中列出了请求。 \n$app->get('/hello', function () use ($app) return "Hello Universe";
);
not web.php
...route.php
位于 app/html 文件夹内。
感谢您的回复 Sachith。 Lumen 5.3 似乎已经删除了 route.php 并替换为 'routes' 文件夹中的 web.php。以上是关于Lumen 在没有 public/index.php 的 RoutesRequests.php 中给出 NotFoundHttpException的主要内容,如果未能解决你的问题,请参考以下文章
Symfony .htaccess apache-pack无法正常工作