Configurei um novo host virtual para um novo site em meu servidor, mas ele está agindo de forma estranha, apesar de ter exatamente as mesmas configurações do meu site original.
Quero que todas as solicitações sejam redirecionadas para HTTPS, simplesmente. No meu site principal (o que funciona), tenho isso especificado na VirtualHost
configuração e .htaccess
tenho uma regra adicional especificada para permitir URLs curtos. Especificamente, o problema no site que não funciona é que, se eu tentar acessar example.com/url
, o redirecionamento vai para https://example.comurl
e remove o necessário /
do URL.
Copiei a configuração exata para o novo VirtualHost
arquivo .htaccess
do site de trabalho, então não sei por que não funciona no novo. Todos os meus registros DNS de ambos os sites usam registros A para apontar para ele, nenhum redirecionamento ou qualquer coisa acontece no nível do DNS. Tentei colocar um /
no final das Redirect
linhas do código abaixo, mas o problema não foi resolvido. O servidor é Ubuntu 14.04 e o Apache é a versão 2.4.7. Ambos os sites são nomes de domínio separados com .conf
arquivos separados usados, mas estão hospedados no mesmo servidor com o mesmo endereço IP. Como posso resolver este problema?
O código relevante em VirtualHost
:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com
</VirtualHost>
E em .htaccess
:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
Caso ajude/importe, esta é a configuração SSL no meu arquivo VirtualHost, embora seja colocada bem no início do arquivo, fora de todas as outras diretivas:
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)"
E esta é a configuração especificamente para VirtualHost
o site:
<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>
Responder1
Para redirecionar para HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Mas você precisa ter um host virtual para 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>
OBSERVAÇÃO:você tem que criar um certificado SSL... mas háótimo tutorialpor esta!