我有Laravel(5.7)项目,并将被部署到具有多个项目的服务器(nginx)。我正在使用Apache在本地计算机上运行该项目,并且尝试使用子目录运行该项目,并且该项目正在我的计算机上运行。
我们在服务器子目录(nginx)中部署我的项目时遇到问题,我不知道Laravel项目是否存在问题,因为每次我们转到项目的http://172.1.1.1/sample时,它总是显示Laravel的“ 404页面未找到”,因为Laravel认为/ sample是路径,因此我认为172.1.1.1/sample运行Laravel,但它没有以/ sample为根,但是当我们转到172.1.1.1时,在这里运行的项目正在运行。我已经做的是在我的Laravel项目中添加以下代码。
在我的AppServiceProvider.php中-添加以下代码:
public function boot()
{
\URL::forceRootUrl(\Config::get('app.url'));
if (str_contains(\Config::get('app.url'), 'https://')) {
\URL::forceScheme('https');
//use \URL:forceSchema('https') if you use laravel < 5.4
}
}
这样,当我在项目的.env中更改APP_URL时,它将起作用。
APP_URL=http://localhost:9021/sample
并在我的公用文件夹的.htaccess中添加以下内容:
RewriteEngine On
RewriteBase /sample/
因此它适用于我的本地计算机,但是当我们尝试部署它时却无法使用。一旦我们转到172.1.1.1/sample(sample-ip),它将仅显示“ 404页面未找到”。
我想知道的是,是否还有其他方法可以更改laravel 5.7的上下文路径。因为我不是在服务器中配置nginx的人,但是我想确保问题不是由于Laravel 5.7造成的。
谢谢您的帮助。