Problemas com o redirecionamento https para https no Apache

1

Eu quero que os seguintes redirecionamentos aconteçam:

link - > link [trabalhando]

link - > link [não funciona]

Como você pode ver ao usar "https", ele não está redirecionando para o link , mas apenas permanece em link

Meu www.conf (para www.example.org):

<VirtualHost *:80>
    ServerName www.example.org

    Redirect / https://example.org

    ServerAdmin webmaster@localhost
    DocumentRoot /srv/www

    ErrorLog ${APACHE_LOG_DIR}/www_error.log
    CustomLog ${APACHE_LOG_DIR}/www_access.log combined

</VirtualHost>

<VirtualHost *:443>
    ServerName www.example.org

    Redirect / https://example.org

    ServerAdmin webmaster@localhost
    DocumentRoot /srv/www

    ErrorLog ${APACHE_LOG_DIR}/www_ssl_error.log
    CustomLog ${APACHE_LOG_DIR}/www_ssl_access.log combined

    Include /etc/letsencrypt/certbot.conf
</VirtualHost>

Meu main.conf (por exemplo.org):

<VirtualHost *:80>
    ServerName example.org

    Redirect / https://example.org

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/main_error.log
    CustomLog ${APACHE_LOG_DIR}/main_access.log combined
</VirtualHost>

<VirtualHost *:443>
    ServerName example.org

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/main_ssl_error.log
    CustomLog ${APACHE_LOG_DIR}/main_ssl_access.log combined

    Include /etc/letsencrypt/certbot.conf
</VirtualHost>

<Directory /var/www/html>
    Options -Indexes
</Directory>
    
por Finch 05.10.2017 / 16:57

1 resposta

1

Eu faria isso (não uma configuração completa, apenas mostrando o conceito):

<VirtualHost *:80>
    ServerName example.org
    ServerAlias www.example.org

    Redirect Permanent / https://example.org
</VirtualHost>

<VirtualHost *:443>
    ServerName example.org
    ServerAlias www.example.org

    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^example.org
    RewriteRule (.*) https://example.org$1 [R=301,L]
</VirtualHost>

A ideia aqui é de um VirtualHost por porta, não por domínio. www.DOMAIN e DOMAIN é quase o mesmo. Portanto, qualquer pedido que vem na porta 80, ele redireciona para https na porta 443. Qualquer pedido que chegue à porta 443 será redirecionado para "ele mesmo", removendo o www, se necessário.

Combinar o VirtualHost via ServerAlias é limpo e simplifica sua configuração.

Você precisa adicionar certificados, registros, ... como eu disse, isso não está pronto para produção!

    
por 05.10.2017 / 17:24