http에서 https로의 적절한 Apache 리디렉션

http에서 https로의 적절한 Apache 리디렉션

내 서버의 새 사이트에 대한 새 가상 호스트를 설정했는데 원래 사이트와 정확히 동일한 설정에도 불구하고 이상하게 작동합니다.

간단히 말해서 모든 요청을 HTTPS로 리디렉션하고 싶습니다. 내 기본 사이트(작업 중인 사이트)에서는 VirtualHost구성 에 이를 지정했고 .htaccess짧은 URL을 허용하도록 지정된 추가 규칙이 있습니다. 특히 작동하지 않는 사이트의 문제는 으로 이동하려고 하면 example.com/url리디렉션이 로 이동하여 URL에서 https://example.comurl필요한 항목을 제거한다는 것입니다 ./

정확한 구성을 작업 사이트의 새 파일 VirtualHost.htaccess파일에 복사했는데 왜 새 구성에서 작동하지 않는지 잘 모르겠습니다. 두 사이트 모두에 대한 내 DNS 레코드는 모두 A 레코드를 사용하여 이를 가리키며 DNS 수준에서는 리디렉션이나 어떤 일도 발생하지 않습니다. 아래 코드의 줄 /끝에 a를 넣으려고 했지만 문제가 해결되지 않았습니다. Redirect서버는 Ubuntu 14.04이고 Apache는 버전 2.4.7입니다. 두 사이트 모두 별도의 파일이 사용되는 별도의 도메인 이름이지만 .conf동일한 IP 주소를 사용하여 동일한 서버에서 호스팅됩니다. 이 문제를 어떻게 해결할 수 있나요?

관련 코드는 다음과 같습니다 VirtualHost.

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / https://example.com
</VirtualHost>

그리고 .htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]

도움이 되거나 중요한 경우에는 VirtualHost 파일의 SSL 구성이지만 다른 모든 지시문 외부의 파일 맨 처음에 배치됩니다.

SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdo$
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"

VirtualHost다음은 해당 사이트를 위한 구성입니다 .

<VirtualHost *:443>
    ServerName example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/example
    ErrorLog ${APACHE_LOG_DIR}/errorexample.log
    Options -Indexes

    SSLEngine on
    SSLCertificateFile /etc/ssl/example/examplecert.crt
    SSLCertificateKeyFile /etc/ssl/example/examplekey.key
    SSLCertificateChainFile /etc/ssl/chain/class1.pem
</VirtualHost>

답변1

HTTPS로 리디렉션하려면:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

하지만 SSL을 위한 가상 호스트가 필요합니다.

NameVirtualHost *:443
<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    SSLEngine on
    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>

메모:SSL 인증서를 만들어야 하는데...훌륭한 튜토리얼이것을 위해!

관련 정보