php - 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。
谢谢你们的帮助。
解决方案
看到这个文档
推荐阅读
- sql - SQL Server - 案例
- server - 在 VB6 中,如何使用 FilesSystemObject 访问多个服务器上的目录?
- angular - 当我手动选择帐户时,带有 GoogleAuthProvider 的 signInWithRedirect 在 safari 上出现白屏
- swift - 使用 IBOutlet 连接 MapKit 视图时应用程序崩溃
- npm - 运行 npm install 时出错
- maven - Intellij 在实际没有错误时报告依赖错误
- c# - Xamarin 插件地理定位器不适用于 Xamarin Forms android
- algorithm - 给定一个包含两个整数作为节点的查询,在树中找到这两个节点的所有子节点?
- spring - 使用spring boot默认杰克逊映射时日期时区发生变化
- html - 使用 inline-block 时 div 消失