laravelサイトがあり、すべてをSSLで機能させるように努めています。Laravelは代わりにhttpを使用したいと考えています。たとえば、私はform
要素を使用しており、メソッドは自動的にhttpに送信していました。組み込みのstyle
、script
リンクを使用して同じことをすべて静的に動作するように変更しました(通常ol 'HTML)私が理解できなかった最後のことは、ページ付け(jscrollを使用)です。この行があります。
{!! $plugins->appends(['tag' => $param2, 'search' => $param1 ])->render() !!}
これを印刷するもの:
<ul class="pager">
<li class="disabled"><span>«</span></li>
<li class="jscroll-next-parent" style="display: none;"><a href="http://siteurl.net/pagename/page/?tag=XXX&search=&page=2" rel="next">»</a>
</li>
</ul>
これをhttpsに変更する方法はありますか?ありがとう!
これを試して、AppServiceProviderに移動し、このコードをbootメソッドに配置します。
\URL::forceScheme('https');
クラス:
namespace App\Providers;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
URL::forceScheme('https');
}
}
他の方法は.htaccessによって強制されます:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^.*$ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
ブラウザーのキャッシュをクリアすることを忘れないでください(その後、htaccessは正しく機能します)。
幸運を!
Httpsルートのみを生成する場合(ただし、プレーンなhttpリクエストは許可されます)、AppServiceProviderを変更します。
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
URL::forceScheme('https');
}
}
httpリクエストをhttpsにリダイレクトする場合は、グローバルミドルウェアを追加します。
class ForceHttpsMiddleware{
public function handle($request, Closure $next){
if (!$request->secure() && App::environment() === 'production') {//optionally disable for localhost development
return redirect()->secure($request->getRequestUri());
}
return $next($request);
}
}
CloudflareにSSLを適用することで、すべてを機能させることができました。コードにはありませんが、機能します。
forceSchemeが間違っています。forceSchemaである必要があります。AppServiceProviderを見つけて、ブート関数の下に追加します。
\URL::forceScheme('https');
ということです
public function boot()
{
\URL::forceSchema('https');
}