2016-08-31 13 views
3

Мы используем Laravel 5. Для перенаправления http-соединения на https используйте Middleware HttpsProtocol.Laravel Redirect Http to Https

namespace MyApp\Http\Middleware; 

use Closure; 

class HttpsProtocol { 

    public function handle($request, Closure $next) 
    { 
      if (!$request->secure() && env('APP_ENV') === 'prod') { 
       return redirect()->secure($request->getRequestUri()); 
      } 

      return $next($request); 
    } 
} 

В нашем 4 тестовом случае правильно работает только 1 (последняя переадресация). Другие 3 случая Middleware добавляет url extra index.php.

http://www.aqualink.az/index.php --->https://www.aqualink.az/index.php/index.php http://aqualink.az/index.php --->https://aqualink.az/index.php/index.php https://www.aqualink.az/index.php --->https://www.aqualink.az/index.php/index.php https://aqualink.az/index.php --->https://aqualink.az/index.php

+0

Ьгу это [Laravel 5 - перенаправление на HTTPS] (http://stackoverflow.com/questions/28402726/laravel-5-redirect-to-https) –

+0

Мы используем тот же метод г-н Пурушотам Тхакур –

ответ

1

Я решаемой с HTAccess

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ https://%1/$1 [R=301,L] 

RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
2

Я думаю, что лучше использовать веб-сервер для перенаправления всех HTTP запросов HTTPS , Пример конфигурации VH для Apache:

<VirtualHost test.app:80> 
    ServerName test.app 
    Redirect permanent/https://test.app 
</VirtualHost> 

<VirtualHost test.app:443> 
    .... 
</VirtualHost> 
1

После изменения на виртуальном хосте, вы можете использовать этот файл .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] 

# Force SSL 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]