Laravel默认请求的地址不是http://ip:端口,而是https://ip:端口
问题描述
Laravel在首页点击项目名的按钮会直接请求https://ip:端口
,但是在F12中显示的是http://ip:端口
,怀疑是重定向了配置相关
服务器是腾讯云的
Laravel版本是8.x
Nginx配置如下:server { listen 80; server_name ip地址; root /var/www/html/book/public; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } }
.env配置如下:
APP_NAME=项目名 APP_ENV=local APP_KEY=base64:XnemSN49H786mWWm05VzFrpCiiFVQtRm4/SurtNS9Lk= APP_DEBUG=true APP_URL=http://ip:80 LOG_CHANNEL=stack LOG_LEVEL=debug DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=book DB_USERNAME=root DB_PASSWORD= BROADCAST_DRIVER=log CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=database SESSION_LIFETIME=120 REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=null MAIL_FROM_NAME="${APP_NAME}" AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
做过的尝试
既然从页面请求会直接请求https,那肯定有个地方是设置了http重定向到https,那我再写个重定向到http不就行了嘛,于是我在app/Providers/AppServiceProvider.php
的boot
方法中添加了$this->app['request']->server->set('HTTP',Request()->server('HTTP_HOST') != 'localhost');
推荐文章: