Ответ 1
Вы можете установить 'url' => 'https://youDomain.com'
в config/app.php
, или вы можете использовать класс промежуточного ПО Laravel 5 - перенаправить на HTTPS.
Я работаю над проектом, который требует безопасного соединения.
Я могу установить маршрут, uri, актив, чтобы использовать 'https' через:
Route::get('order/details/{id}', ['uses' => '[email protected]', 'as' => 'order.details', 'https']);
url($language.'/index', [], true)
asset('css/bootstrap.min.css', true)
Но установка параметров все время кажется утомительным.
Есть ли способ заставить все маршруты генерировать ссылки HTTPS?
Вы можете установить 'url' => 'https://youDomain.com'
в config/app.php
, или вы можете использовать класс промежуточного ПО Laravel 5 - перенаправить на HTTPS.
Вот несколько способов. Выберите наиболее удобный.
Настройте свой веб-сервер для перенаправления всех незащищенных запросов на https. Пример конфигурации nginx:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
Установите переменную окружения APP_URL
используя https:
APP_URL=https://example.com
Используйте помощник secure_url() (Laravel5.6)
Добавьте следующую строку в метод AppServiceProvider :: boot() (для версии 5. 4+):
\Illuminate\Support\Facades\URL::forceScheme('https');
Обновить:
Неявная настройка схемы для группы маршрутов (Laravel5.6):
Route::group(['scheme' => 'https'], function () {
// Route::get(...)->name(...);
});
Поместите это в AppServiceProvider в методе boot()
if($this->app->environment('production')) {
\URL::forceScheme('https');
}
Добавьте это в свой .htaccess код
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L]
Замените www.yourdomain.com своим доменным именем. Это заставит все URL вашего домена использовать https. Убедитесь, что в вашем домене установлен и настроен сертификат https. Если вы не видите https зеленым как безопасный, нажмите f12 на chrome и исправьте все смешанные ошибки на вкладке консоли.
Надеюсь, это поможет!
Я использовал это в конце файла web.php
или api.php
и он работал отлично:
URL::forceScheme('https');
Использование следующего кода в вашем файле .htaccess автоматически перенаправляет посетителей на HTTPS-версию вашего сайта:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
public function boot()
{
if(config('app.debug')!=true) {
\URL::forceScheme('https');
}
}
в приложении/Поставщики /AppServiceProvider.php
попробуй это - будет работать в файле RouteServiceProvider
$url = \Request::url();
$check = strstr($url,"http://");
if($check)
{
$newUrl = str_replace("http","https",$url);
header("Location:".$newUrl);
}