app : nginx/1.13.3 xe_version : 1.9.7 php : 5.5.9-1ubuntu4.22 서버 환경입니다.

 

서버 에러로그를 살펴보던 중 

PHP Notice: Undefined offset: 1 in /home/tqookcokr/www/index.php on line 44 에러로그에 쌓여있는것을 보고 확인 해보니 

 

index.php 에 개인적으로 적용한 xe 로그인 풀림방지팁 (  https://xe1.xpressengine.com/tip/19787880 )  부분에서 문제를 일으키는 것으로 확인이 되었습니다.

 

 * @brief Declare constants for generic use and for checking to avoid a direct call from the Web
 **/
define('__XE__',   TRUE);
/* 로그인 풀림방지 추가*/
preg_match('@^(www\.)(.*)@', $_SERVER['HTTP_HOST'], $www_url);
if($www_url[1]) {
@header('Location: http://' . $www_url[2] . $_SERVER['REQUEST_URI']);
}
/*로그인 풀림방지 추가end*/
 

Undefined offset 은 어떤 배열에서 정의되어 있지 않은 값을 호출하려 할 때 발생하는 에러다. 라고 검색이 되는데요 위팁을 계속사용하려면 소스 수정을 어떻게 해야 할지 도움 부탁드리겠습니다.

 

아니면 로그인 풀림방지 팁 자체가 무의미하다면 아예 해당팁을 제거하는게 맞을까요?

 

[ 참고 : 에러로그 중 일부]

2018-08-14 17,41,25.JPEG

 

  • profile
    www,http 등을 하나의 주소로 리디렉트 하는 방법은 서버단에서 .htaccess 파일에서도 처리가 가능할텐데요... 검색하시면 많은 문서가 나올겁니다.
  • profile ?
    nginx 라 아파치처럼 .htaccess 사용하는 방법에 대해서 아직 시도를 해보지 못했습니다.
  • ? profile
    아.. nginx 였군요....
  • ?
    웹지기님 말씀대로 htaccess 에서 처리하시는 게 좀 더 빠르겠지만,
    일단 오류 수정 방법을 알려드리자면...

    if(isset($www_url[1])) {
    ...
    }

    으로 사용하시면 될겁니다.
  • ? ?
    답변 감사합니다. 한번 시도해보겠습니다. ^^
  • profile
    해당코드 쓰시지마시고요..

    nginx 에서 리디렉트 시키도록 해보세요.

    server {
    listen 80;
    server_name www.sitename.com;
    return 301 http://sitename.com$request_uri;
    expires epoch;
    }
  • profile ?
    답변감사합니다.
    시도해보겠습니다. ^^