url 타도메인 지정 문제와 https, www 강제지정 질문입니다.
본문
안녕하세요.
홈페이지를 서버이전 하고 특정 조건에서 로그인하면 "url에 타 도메인을 지정할수 없습니다. 라는 메세지가 뜹니다.
일단 원인을 분석을 해보니 config에 https 지정 문제와 htaccess 파일의 Rewrite 문제인것 같습니다.
htaccess 의 내용은 아래와 같습니다.
#### 그누보드5 rewrite BEGIN #####
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^content/([0-9a-zA-Z_]+)$ bbs/content.php?co_id=$1&rewrite=1 [QSA,L]
RewriteRule ^content/([^/]+)/$ bbs/content.php?co_seo_title=$1&rewrite=1 [QSA,L]
RewriteRule ^rss/([0-9a-zA-Z_]+)$ bbs/rss.php?bo_table=$1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)$ bbs/board.php?bo_table=$1&rewrite=1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)/([^/]+)/$ bbs/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)/write$ bbs/write.php?bo_table=$1&rewrite=1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)/([0-9]+)$ bbs/board.php?bo_table=$1&wr_id=$2&rewrite=1 [QSA,L]
</IfModule>
#### 그누보드5 rewrite END #####
그누보드5 짧은 주소와 http로 접속했을때 https로 강제이동인데 둘다 잘됩니다.
그런데 문제가 로그인시에 url 타도메인 경고 문제입니다.
config,php 에서
define('G5_DOMAIN', '');
define('G5_HTTPS_DOMAIN', 'https://abc.co.kr); //www 없음
define('G5_COOKIE_DOMAIN', '.abc.or.kr');
로 세팅 했을 경우
https://www.abc.co.kr 로 www를 넣어서 로그인 시도 - > 로그인 성공하고 url 타도메인 메세지 나옴.
https://abc.co.kr www 지우고 로그인 시도 - > 로그인 성공하고 url 타도메인 메세지 안나옴.
define('G5_DOMAIN', '');
define('G5_HTTPS_DOMAIN', 'https://www.abc.co.kr); //www 넣음
define('G5_COOKIE_DOMAIN', '.abc.or.kr');
https://www.abc.co.kr 로 www를 넣어서 로그인 시도 - > 로그인 성공하고 url 타도메인 메세지 안나옴.
https://abc.co.kr www 지우고 로그인 시도 - > 로그인 성공하고 url 타도메인 메세지 나옴.
이렇듯 config에서 www를 넣느냐 안넣느냐에 따라 서로 반대 결과가 나오네요.
혹시 이문제를 해결할수 있는 방법이 있을까요?
제가 생각한건 htaccess에서 주소에 www와 https를 같이 무조건 붙게 하면 될것 같은데 코드를 잘 모르겠네요.
아니면 config에서 자체적으로 해결할수 있는 방법이 있을까요?
도움 부탁드립니다.
답변 3
define('G5_HTTPS_DOMAIN', 'https://abc.co.kr); 에서 도메인 설정 부분을 삭제해보세요..
define('G5_HTTPS_DOMAIN', ''); 이렇게..
@eyekiss 님 방법도 좋은 방법입니다.
제가 제안 드리는 방법은 특정도메인으로 국한시킬 경우
define('G5_DOMAIN', 'https://abc.co.kr');
define('G5_HTTPS_DOMAIN', 'https://abc.co.kr');
이렇게 해보시면 어떨까합니다.
제 경우에는 위 방법으로 해결을 했던적이 있습니다.
두분 모두 답변 감사드립니다. 하지만 두분께서 알려주신 방법 모두 안되네요 ㅠㅠ .
다른 이유가 있는것 같습니다.
처음부터 차근히 방법을 찾아봐야겠습니다!