首页 > 解决方案 > Laravel 更改路径上下文

问题描述

我有 Laravel(5.7) 项目,并将部署到具有多个项目的服务器 (nginx)。我正在使用 Apache 在我的本地机器上运行该项目,我尝试使用子目录运行它,它正在我的机器上运行。

我们在服务器(nginx)的子目录中部署我的项目时遇到问题,我不知道 Laravel 项目是否有问题,因为每次我们访问我的项目的http://172.1.1.1/sample时它总是显示 Laravel 的“404 Page not found”,因为 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 Page not found”。

我想知道是否还有其他方法可以更改 laravel 5.7 的上下文路径。因为我不是在服务器中配置 nginx 的人,但我想确保问题不是因为 Laravel 5.7。

谢谢你们的帮助。

标签: phplaravelnginxlaravel-5.7

解决方案


看到这个文档

带有 nginx 的 laravel


推荐阅读