해당URL를 찾을 수 없습니다. 관련 문의 드립니다.
본문
문의 요점
http://aaa.abc.com (80포트)접속시 -> https://aaa.abc.om 으로 보냄 (현재는 잘 서비스되는 상태임)
여기서 https://www.abc.com/aaa/ 하위 디렉토리로 홈피서비스를 하고자 할 경우 아래와 같이
설정한 상태 입니다. 이럴경우 페이지는 모두 정상적인데...
로그인시 "www.abc.com 내용: url에 타 도메인을 지정할 수 없습니다." 메세지 출력되며, 더이상 진행이 되지않습니다. 해결방안을 찾고자 문의드립니다.
a. 세션쪽이 의심이라 로그인, 글쓰기페이지 등 수정을 봐야 하는것인지?
b. 아니면 서버 설정이 문제인지?
c. 이것도 아니면 아랫글문의 처럼 소스상에서 https로 접근시킨다면 아파치 서버 설정은어떻게 구성을 해야하는지?
조언을 부탁드려봅니다.
현재 웹서버 설정상황은
1차도메인 www.abc.com (타서버)
2차도메인을 받아서 설정도메인 예) aaa.abc.com (현재 서비스되는 웹서버)
디렉토리 서비스가 타서버에서 세팅된것이고(1차 도메인)
타서버에 네임서버 설정에서 이쪽(2차도메인) 넘겨준는 구조로 1차, 2차 서버는 각기 다른 서버주소 입니다.
타서버 www.abc.com/aaa/ <--aaa가 현재 서비스되는 aaa.abc.com 으로 연결되는 서비스를 하고자 합니다.
1. httpd-vhosts.conf 설정
<VirtualHost *:80>
DocumentRoot /home/aaa/public_html
ServerName aaa.abc.com
ServerAlias aaa.abc.com
Redirect / https://aaa.abc.com:443
....
</VirtualHost *:80>
2. httpd-ssl.conf 설정
<VirtualHost _default_:443>
DocumentRoot /home/aaa/public_html
ServerName aaa.abc.com:443
.....
RewriteEngine On
RewriteCond %{HTTP_HOST} ^aaa.abc.com$ [NC]
RewriteCond %{REQUEST_URI} !^/aaa [NC]
RewriteRule ^(.*)$ https://www.abc.com/aaa [R=301,L]
....
</VirtualHost>
위 와 같이 되어 있습니다.
/aaa/홈디렉토리에 config.php 파일 28줄에는 아래와 같이 정정함
define('G5_DOMAIN', 'https://www.abc.com/aaa');
define('G5_HTTPS_DOMAIN', 'https://www.abc.com/aaa');
답변 2
※ 브라우저는 보안상 다른 도메인(혹은 서브도메인)에서 리소스를 요청하는 것을 제한합니다.
로그인 처리를 위한 요청이 https://aaa.abc.com
에서 시작되었으나,
리다이렉션이나 URL 경로 설정으로 인해 https://www.abc.com/aaa/
로 요청이 전송되면,
이 요청을 동일한 출처가 아니라고 판단하여 요청이 차단되는 것입니다.
> 보여주신 설정을 요약하자면, ~
- 도메인 간 리다이렉션과 PHP 설정의 불일치로 인해 발생하는 문제입니다.
- 도메인을 통합하거나, 명시적인 CORS 정책과 PHP 세션 설정으로
문제를 해결할 수 있을 것입니다.
> 해결 방안 :
- aaa.abc.com
과 www.abc.com/aaa/
중 하나의 도메인으로 통합
- config.php
의 설정 - aaa.abc.com
으로 통합한다면
-
- config.php에 도메인 하위 디렉터리(/aaa)를 지정하지 마세요.
. . .
= 이 설정은 타 서버(www.abc.com
)가
요청을 aaa.abc.com
으로 넘기는 방식으로 동작합니다
따라서 www.abc.com/aaa/
은 디렉토리 서비스처럼 보이지만,
실제로는 2차 도메인(aaa.abc.com
)에서 서비스되고 있습니다.
부모 도메인이 틀려서 그렇습니다.
aaa.abc.com 이든 www.abc.com 이든 최초 호스트와 다른도메인이기 때문이죠
로그인 채크에서 로그인 이전에 기억한 URL 로 리턴하는 구문이 있는데
(회원글쓰기인데 비회원접근시 로그인 알림 나오고 로그인 후 다시 해당 글쓰기로 이동하는것...)
해당 리턴채크 하는곳에서 현재 도메인이 아닌 다른 도메인일경우 위 경고가 나옵니다.
alert() 이나 goto_url() 채크해보세요.