'서버'에 해당되는 글 2건

  1. 2011.12.08 http를 강제로 https로 재연결
  2. 2011.03.26 IP 주소로 메일 보내기
  3. .
서버/Web2011. 12. 8. 00:59
모든 페이지를 https로 연결시키는 일은 쉽다.
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
그리고 이것은 rewriterule 말고 redirection으로도 처리가 되고, 오히려 그렇게 처리하는 것이 좋은 방법이다. 다음 링크를 참고.
http://httpd.apache.org/docs/2.2/rewrite/avoid.html

그러나 login page 등 일부 페이지만 강제로 https로 연결 시키려면 어떻게 해야할까? 이런 문제는 간단한 것 같지 않다.

예를 들어 로그인 페이지가 "main.php?do=login&...&..."처럼 생겼다면, 단순히 RewriteRule만으로는 처리할 수 없다. 왜냐하면 RewriteRule은 기본적으로 ? 뒤에 붙은 것을 안 보기 때문이다. 이 경우 RewriteCond %{QUERY_STRING}를 사용하면 된다. 또한, RewriteRule에는 QSA를 붙여 주어서 쿼리 스트링이 rewrite 후에도 남아 있도록 만들어 주어야 한다.
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteCond %{QUERY_STRING} do=login
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L,QSA]
그런데 이렇게 하면 로그인 후에도 https에 그냥 머무르게 된다. 필자는 로그인 후에도 https를 계속 쓰는 편이 낫다고 생각하여 그냥 두었지만, 로그인 후에는 다시 http로 보내려면 다른 부분을 또 고쳐야 할 것이다.
Posted by asdfzxcv
서버2011. 3. 26. 19:02
도메인 네임 대신 IP address를 사용했더니 메일이 안 가는 경우가 있을 것이다. 예를 들면 "user@127.0.0.1"로 메일을 보냈더니 메일이 안 가고 "Bad recipient address"라고 나오는 것이다. 구글 등에서 검색해봐도 원하는 답을 쉽게 찾을 수가 없지만, 아주 잘 찾아보면 나오긴 나온다.

결론은 "user@[127.0.0.1]"처럼 IP 주소를 "["와 "]" 사이에 적어야 한다는 것이다.
Posted by asdfzxcv