https 로 접속 도메인 문의
본문
서버에서
위와 같이 동일 도메인으로 접속했을때
으로 접속하는 방법은 잘 알고 있고 그리 운영하고 있습니다.
그런데, https 로 접속했을때는 어뗳게 하는지요?
으로 접속했을 때, www를 빼고 https://도메인.com 으로 만 접속하게 하고 싶습니다.
서버에서 http:// 에서 사용한 것처럼
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^/(.*)
위 부분을 https:// 에도 적용해 봤는데 안됩니다.
httpd-ssl.conf 안에
< VirtualHost _default_:443>
# General setup for the virtual host
# DocumentRoot "/usr/local/apache/htdocs" --------------- cscw
DocumentRoot "/data/도메인/public_html"
ServerName www.도메인.com
ServerAlias 도메인.com
ServerAdmin 이메일
ErrorLog "/usr/local/apache/logs/error_log"
TransferLog "/usr/local/apache/logs/access_log"
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/usr/local/apache/conf/ssl_key/도메인_co_kr.crt"
SSLCertificateKeyFile "/usr/local/apache/conf/ssl_key/도메인_co_kr.key"
SSLCertificateChainFile "/usr/local/apache/conf/ssl_key/ChainCA.crt"
이부분에 코드를 넣으면 가능할 것 같은데,
아시는 고수분 좀 알려 주시기 바랍니다.
고맙습니다. ^^
답변 1
.htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
.conf
<VirtualHost *:443>
ServerName 도메인.com
ServerAlias www.도메인.com
<If "%{HTTP_HOST} == 'www.도메인.com'">
Redirect permanent / https://도메인.com/
</If>
:
.php ... 공통 호출 소스 최상단
if ( $_SERVER['HTTP_HOST']!=='도메인.com' ) {
$url = (isset($_SERVER['HTTPS'])?'https://':'http://').'도메인.com'.(in_array($_SERVER['SERVER_PORT'], ['80', '443'])?'':':'.$_SERVER['SERVER_PORT']).$_SERVER['REQUEST_URI'];
if ( !headers_sent() ) {
// http_response_code(301);
header('Location: '.$url);
} else {
echo "<meta http-equiv='Refresh' content='0; URL={$url}'>";
}
exit;
}