【问题标题】:Laravel Use HTTPSLaravel 使用 HTTPS
【发布时间】:2019-07-08 03:48:24
【问题描述】:

我有项目并在 ubuntu 服务器上安装了 SSL 证书。我已经完成了我找到的所有解决方案,但每次打开页面时仍然收到此消息。

The requested URL /about was not found on this server.

这是我为强制 Laravel 使用 https 所做的更改:

1- 我更改了公用文件夹中的 .htaccess 并添加了这些行

# Added to Force HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

2- 在 app->Providers->AppServiceProvider 我已将此添加到 boot() 函数

if (App::environment() === 'production' || App::environment() === 'dev') {
            URL::forceScheme('https');
        }

3- 我创建了 php artisan make:middleware ForceSSL 并将以下代码添加到句柄函数中

 if (!$request->secure() && in_array(env('APP_ENV'), ['stage', 'production'])) {
            return redirect()->secure($request->getRequestUri());
        }

        return $next($request);

在 Kernal.php 中

\MyApp\Http\Middleware\ForceSSL::class

在 .env 文件中,我已将 APP_URL 更改为 https:// 我还更改了 config 文件夹中 app.php 中的 APP_URL。

我在这里错过了什么?这两天我不明白为什么:(

【问题讨论】:

  • this 没有帮助?
  • 您的路线中是否设置了路线/url /about?也许重做配置? php artisan config:clear
  • 使用 php artisan route:list 检查路线
  • 这可能是一个愚蠢的问题,但您是否将您的虚拟主机设置为除了 http 之外还提供 https 服务?默认情况下,您有 <VirtualHost *:80>,它仅用于 http,您还需要有一个带有证书配置的 <VirtualHost *:443>
  • 你使用的是 nginx 还是 apache? (或其他)

标签: php laravel .htaccess laravel-5 laravel-routing


【解决方案1】:

有几件事你需要确保工作:

  1. 您的路由是否在标准 HTTP 模式下工作,而 url 中没有 index.php。就像有时 laravel.com/aboutus 不起作用但 laravel.com/index.php/aboutus 起作用。如果是这种情况,您需要在 php 中启用 mod_rewrites,然后在您的虚拟主机配置中添加 AllowOverride All 并重新启动 apache。
  2. 来到 HTTPS,您在 laravel 中设置的内容将使 laravel 请求转发到安全的 HTTPS url。但是,您的服务器必须能够侦听、处理和响应 HTTPS 请求。
  3. 您需要启用 yoru virtualhost 来监听端口443 这是 SSL 端口。此外,如果您有 SSL 证书,也需要配置这些证书。
  4. 在了解 laravel 是否支持 HTTPS 之前,先创建一个简单的 php 文件并尝试使用服务器 url 的 HTTPS 访问它。如果可行,那么您可以检查 laravel 中的问题。如果没有,则说明您的服务器上没有正确配置 SSL。
  5. 最后,检查.htaccess 重写条件。
  6. php artisan config:clearphp artisan route:cache

希望这有助于调试此问题

【讨论】:

  • 我正在使用 apache2
  • 主页正在打开,所有其他页面都无法正常工作。
  • 如果您说您的主页使用 HTTPS 而不是内页,请检查 .htaccess 文件和
【解决方案2】:

AWS |森托斯 | EC2 | AWS 证书

有点晚了,但我自己只需要在我的环境中更改它。文件:

APP_URL=http://localhost

to

APP_URL=https://localhost

一切顺利。

【讨论】:

    猜你喜欢
    • 2016-11-28
    • 2021-12-02
    • 2022-01-18
    • 2021-05-20
    • 2013-07-27
    • 2018-10-12
    • 1970-01-01
    • 2016-08-14
    • 2020-12-11
    相关资源
    最近更新 更多