web-dev-qa-db-ja.com

Laravel:HTTPSを強制する方法は?

私は新しい大きなアプリを開発し始めており、今度はLaravel=を使用しています。これが初めてです。

すべてのページにHTTPSを強制する必要があります。コードからでも.htaccessでも重要ではありませんが、簡単なチュートリアルを見つけることができません。

公式ドキュメントでは、この問題について言及していません。

情報については、私のacutal .htaccessは

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

私の質問はLaravel 5に固有です。なぜなら、この.htaccessファイルをどこでどのように変更するかわからないからです。また、これがLaravelまたはif Laravelには、HTTPを処理するための設定に固有のものがあります。

したがって、私の質問を閉じないで、Laravel=特定のトピックにもっと従うようにしてください。

このファイルを修正する簡単な方法を投稿できる場合AND/OR Laravel configs in https。

しかし、要するに、私はすべての通話をHTTPSで強制的に通過させたいと思います。

10
realtebo

これを.htaccessファイルに追加する必要があります。

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://YOURWEBSITEDOMAIN/$1 [R,L]

これを参照してください: http://www.inmotionhosting.com/support/website/ssl/how-to-force-https-using-the-htaccess-file

17
Mortada Jafar

このコードを.htaccessファイルに追加してみてください。

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
10
Webinion

すべてのURLをhttpsでレンダリングする場合。最も簡単な方法は、app/Providers/AppServiceProvider.phpのboot()関数で以下のコードを使用することです:

\ URL :: forceScheme( 'https');

4
Amitesh

ファイル.htaccessを変更します

次の場所でドミンを変更します。

RewriteCond%{HTTP_Host} mydomain.com [NC]

RewriteRule ^(。*)$ https:// mydomain / $ 1 [R、L]

<IfModule mod_rewrite.c>
  <IfModule mod_negotiation.c>
      Options -MultiViews
  </IfModule>

  RewriteEngine On

  # Added to Force HTTPS
  RewriteCond %{HTTP_Host} mydomain\.com [NC]
  RewriteCond %{SERVER_PORT} 80
  RewriteRule ^(.*)$ https://mydomain/$1 [R,L]

  # Redirect Trailing Slashes If Not A Folder...
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)/$ /$1 [L,R=301]

  # Handle Front Controller...
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [L]

  # Handle Authorization Header
  RewriteCond %{HTTP:Authorization} .
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
2
fcva

これをAppServiceProviderのブートメソッドに追加します

if($this->app->environment('production'))
{
   $this->app['request']->server->set('HTTPS','on');
}
1

これは私のために働いた

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^(.*)$ public/$1 [L]
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} !^public [L,R=301]
</IfModule>
1
kelvin

最初にここで検索してみてください。同じ問題についての答えがたくさんある質問があります。

https://stackoverflow.com/a/4399158/5892849

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
0
Sandeesh

.envファイルの「APP_URL」を変更してみてください

APP_URL = http://example.com

APP_URL = https://example.com
0
Jeybin George