2012-08-30 2 views
2

Google에는 http와 https를 통해 액세스하는 ExpressionEngine 사이트가 있습니다. 일부 애셋이 안전하지 않은 방식으로 액세스되기 때문에 사용자는 https를 통해 액세스 할 때 IE에서 보안 경고를받습니다.이 경우 CSS 및 이미지 참조).http와 https를 통한 ExpressionEngine 액세스

'사이트의 루트 디렉토리에 대한 일반 설정 -> URL'에 http : // 프로토콜 식별자가 포함되어있는 경우 이러한 현상이 발생합니다 (해당 입력란을 비워두고 사이트 도메인 [example.com]으로 설정하거나 프로토콜 [//example.com/]없이 설정하면 다른 문제가 발생하므로 실제로 옵션이 아닙니다. 문제가되는 URL은 물론 템플릿의 {path =} 또는 {stylesheet =}를 사용하여 생성 된 URL입니다.

페이지와 동일한 프로토콜을 통해 모든 애셋을 제공하는 좋은 방법이 있습니까?

덕분에, 스콧

답변

1

EE 변수는 기본적으로 https를 감지하거나 사용하지 않기 때문에 코드에서 설정해야합니다. '할 수있는 내가 그렇게 이들 중 하나를 사용하지 않는 한 (특별한 순서없이)

http://devot-ee.com/add-ons/https-support

http://devot-ee.com/add-ons/dm-force-ssl

http://devot-ee.com/add-ons/force-ssl (상업)

: 가장 쉬운 방법은 추가 기능을 사용하는 것입니다 내 자신의 플러그인을 사용하여 특정 하나를 추천합니다.

+0

OK, awesome - HTTPS 지원은 내가 찾고있는 것과 정확히 일치합니다. https를 통해 액세스하는 경우 세션에서 EE의 'base_url'을 재설정하는 멋진 간단한 확장 프로그램입니다. –

0

는 루트 URL을 포함해야합니까? 종종 사이트의 루트 URL을 '/'로 설정합니다.

다른 옵션은 경로 또는 스타일 헬퍼를 사용하지 않고 이러한 애셋을 수동으로 포함하는 것입니다.

URL이 실시간 인 경우 자동으로 현재 프로토콜을 상속합니다.

+0

을 사용할 때 제어판의 항목을 저장하면 페이지 모듈이 잘못된 URL에 대해 불만을 나타냅니다. 그리고 예, 수동으로 URL을 코딩 할 수 있지만 여기서 핵심은 {경로 =} 및 친구의 장점을 유지하는 것입니다. –

0

PHP로 프로토콜을 감지하고 system/expressionengine/config/config.php 파일에서 동적으로 설정할 수 있습니다. 나는이 같은 것을 사용 : 당신은 config.php에 그 기초에서 테마 경로, 다양한 이미지 경로, 업로드 경로 등을 모두 구축 할 수

$protocol = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") ? "https://" : "http://"; 
$base_url = $protocol . $_SERVER['HTTP_HOST']; 

$config['base_url'] = $base_url . "/"; 

. 그러나 $config['site_url']{path=""}{stylesheet} 태그의 출력에 영향을주는 요소입니다.

자세한 내용은 NSM's Config Bootstrap file 또는 Configuring ExpressionEngine for multiple servers 문서를 참조하십시오. config.php에 설정할 수있는 모든 경로에 대해서는 EE2 Config Overrides

+0

더 좋은 옵션을 이용해 주셔서 감사합니다. 간략하게하기 위해 [HTTPS 지원] (http://devot-ee.com/add-ons/https-support)은 작은 확장자로이 작업을 수행합니다. 그것은 또한 site_url과 몇 가지 다른 덜 일반적인 설정을 처리합니다. 이는 시원합니다. 나는 config.php에서이 작업을하는 것을 좋아합니다. 또는 거기에서 요구되는 것이지만, 그것을 도구 상자에 집어 넣고 있습니다! –