Laravel framework
라라벨 pagination Https 적용, how to convert pagination http to https?
- 라라벨 pagination을 사용할 때, 사이트 인증서는 제대로 작동하는데도 불구하고
- next page 혹은 previous page가 http로 넘어가는경우에 해결방법을 알아보자.
1. .env 파일 APP_URL 확인하기
- 라라벨 프로젝트 루트디렉토리 內 .env 파일을 열어 APP_URL 부분을 확인한다.
- http 로 설정되어있으면 https로 변경처리 해주자.
2. .env파일 변경후 그대로라면 사용자 지정 pagination을 만들어주자
- 정말 원천적으로 고치고 싶다면 3번 참조.
- view.blade에서 $result->links() 부분으로 pagination을 그려줄 것이다.
- $result->links('new.pagination_list'); 형식으로 새로운 pagination blade를 만들어주자.
- 새로만든 new\pagination_list.blade.php 에는 아래와 같이 작성해주자.
@if ($paginator->hasPages())
<ul class="pagination">
{{-- Previous Page Link --}}
@if ($paginator->onFirstPage())
<li class="disabled"><span>«</span></li>
@else
<li><a href="{{ str_replace('http:','https:',$paginator->previousPageUrl()) }}" rel="prev">«</a></li>
@endif
{{-- Pagination Elements --}}
@foreach ($elements as $element)
{{-- "Three Dots" Separator --}}
@if (is_string($element))
<li class="disabled"><span>{{ $element }}</span></li>
@endif
{{-- Array Of Links --}}
@if (is_array($element))
@foreach ($element as $page => $url)
@if ($page == $paginator->currentPage())
<li class="active"><span>{{ $page }}</span></li>
@else
<li><a href="{{ str_replace('http:','https:',($url)) }}">{{ $page }}</a></li>
@endif
@endforeach
@endif
@endforeach
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
<li><a href="{{ str_replace('http:','https:',$paginator->nextPageUrl()) }}" rel="next">»</a></li>
@else
<li class="disabled"><span>»</span></li>
@endif
</ul>
@endif
- 사용하는 모든 view blade의 ->links()를 본인이 커스텀한 pagination.blade.php 로 참조시킨다.
3. 라라벨 url scheme 결정 코드 http-foundation>Request.php
- 라라벨 페이지네이션 URL Scheme 결정 코드는 http-foundation\Request.php 를 참조한다.
- Symfony\Component\HttpFoundation\Request 안의 isSecure()메소드쪽을 보면 아래와같이
- isFromTrustedProxy()를 봐야하고, 결론적으로 HEADER_X_FORWAREDED_PROTO를 참조하게된다.
- 하지만 괜히 건드렸다가 어떻게될지 모르니 필자는 2번 임시방편으로 고쳤다.
- 혹시 Request.php사용해서 http -> https 변경 성공하신분들은 댓글로 방법좀 공유해주시면 좋겠어요.
'Laravel' 카테고리의 다른 글
Local 환경에서 개발 후, 서버 배포시 'Class Not Found' 오류 현상 (0) | 2022.02.08 |
---|---|
What is Laravel EncryptCookies ???? (0) | 2020.05.26 |
라라벨 php artisan 명령어로 model 생성하기! (1) | 2020.05.04 |
라라벨 php artisan 명령어 사용하여 컨트롤러 만들기! (1) | 2020.05.04 |
데이터베이스 시딩 (Seeder) (0) | 2020.03.18 |