Wordpress em DigitalOcean http://example.com não funciona, mas todas as outras combinações de https://example.com e http://www.example.com são

1

Esta é uma pergunta difícil para o Google, ou mesmo para o título.

Eu posso acessar meu site Wordpress com sucesso usando:

link

link

link

Mas isso falha:

link

Se você tentar acessar o domínio a partir desse endereço, verá uma página da Web azul com a marca DigitalOcean, com uma imagem de um tubarão e o seguinte erro: "Conecte-se ao seu droplet via SSH para configurar sua instalação LAMP".

Eu tenho um droplet DigitalOcean rodando o Ubuntu 16.04 com o Apache 2 e vários domínios. Um dos domínios tem um site Wordpress que foi migrado de outro host. O domínio é configurado da mesma forma que todos os meus outros domínios, incluindo um certificado instalado via letsencrypt.

Eu não acredito que meu problema esteja com o certificado. Eu acredito que o problema tem a ver com o Wordpress, porque os outros sites no meu servidor estão funcionando muito bem em todas as 4 condições (http: // e https: // e www e não-www)

Aqui está o meu arquivo (anonimizado) .conf:

    <VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/example
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www/example>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <IfModule mod_dir.c>
        DirectoryIndex index.php index.pl index.cgi index.html index.xh$
    </IfModule>

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

e aqui está minha pasta .htaccess dentro de / var / www / example

        # BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#test
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# END WordPress

e aqui estão as minhas configurações de DNS, coladas e anonimizadas:

        CNAME   
ftp.example.com is an alias of example.com. 

A   
example.com directs to 159.65.36.136

CNAME
www.example.com is an alias of example.com. 

NS  
example.com directs to ns1.digitalocean.com.    

NS  
example.com directs to ns2.digitalocean.com.    

NS  
example.com directs to ns3.digitalocean.com.    

e aqui está minha saída do apache2ctl -S

            VirtualHost configuration:
*:443                  is a NameVirtualHost
        default server othersite1.com (/etc/apache2/sites-enabled/othersite1.com-le-ssl.conf:2)
        port 443 namevhost othersite1.com (/etc/apache2/sites-enabled/othersite1.com-le-ssl.conf:2)
                alias www.othersite1.com
        port 443 namevhost othersite2.co (/etc/apache2/sites-enabled/othersite2.co-le-ssl.conf:2)
                alias www.othersite2.co
        port 443 namevhost example.com (/etc/apache2/sites-enabled/example.com-le-ssl.conf:2)
                alias www.example.com
        port 443 namevhost othersite3.com (/etc/apache2/sites-enabled/othersite3.com-le-ssl.conf:2)
                alias www.othersite3.com
        port 443 namevhost othersite4.com (/etc/apache2/sites-enabled/othersite4.com-le-ssl.conf:2)
                alias www.othersite4.com
        port 443 namevhost othersite5.net (/etc/apache2/sites-enabled/othersite5.net-le-ssl.conf:2)
                alias www.othersite5.net
        port 443 namevhost othersite6.com (/etc/apache2/sites-enabled/othersite6.com-le-ssl.conf:2)
                alias www.othersite6.com
*:80                   is a NameVirtualHost
        default server example.com (/etc/apache2/sites-enabled/000-default.conf:1)
        port 80 namevhost example.com (/etc/apache2/sites-enabled/000-default.conf:1)
        port 80 namevhost othersite1.com (/etc/apache2/sites-enabled/othersite1.com.conf:1)
                alias www.othersite1.com
        port 80 namevhost othersite2.co (/etc/apache2/sites-enabled/othersite2.co.conf:1)
                alias www.othersite2.co
        port 80 namevhost example.com (/etc/apache2/sites-enabled/example.com.conf:1)
                alias www.example.com
        port 80 namevhost othersite3.com (/etc/apache2/sites-enabled/othersite3.com.conf:1)
                alias www.othersite3.com
        port 80 namevhost othersite4.com (/etc/apache2/sites-enabled/othersite4.com.conf:1)
                alias www.othersite4.com
        port 80 namevhost othersite5.net (/etc/apache2/sites-enabled/othersite5.net.conf:1)
                alias www.othersite5.net
        port 80 namevhost othersite6.com (/etc/apache2/sites-enabled/othersite6.com.conf:1)
                alias www.othersite6.com
    ServerRoot: "/etc/apache2"
    Main DocumentRoot: "/var/www/html"
    Main ErrorLog: "/var/log/apache2/error.log"
    Mutex rewrite-map: using_defaults
    Mutex ssl-stapling-refresh: using_defaults
    Mutex ssl-stapling: using_defaults
    Mutex ssl-cache: using_defaults
    Mutex default: dir="/var/lock/apache2" mechanism=fcntl 
    Mutex mpm-accept: using_defaults
    Mutex watchdog-callback: using_defaults
    PidFile: "/var/run/apache2/apache2.pid"
    Define: DUMP_VHOSTS
    Define: DUMP_RUN_CFG
    User: name="www-data" id=33
    Group: name="www-data" id=33
    
por Tim 09.03.2018 / 16:35

1 resposta

1

Possibilidade # 1

Parece que seu VirtualHost padrão para *:80 , usando o arquivo de configuração 000-default.conf está correspondendo namevhost example.com no topo da saída ...;

VirtualHost configuration:
    default server example.com (/etc/apache2/sites-enabled/000-default.conf:1)
    port 80 namevhost example.com (/etc/apache2/sites-enabled/000-default.conf:1)

considerando que você deseja combinar aqui;

    port 80 namevhost example.com (/etc/apache2/sites-enabled/example.com.conf:1)
    alias www.example.com

O que provavelmente está acontecendo é que a página com o texto "Por favor, faça o login no seu droplet via SSH para configurar sua instalação LAMP." é o conteúdo padrão de /var/www/html .

Então, eu tentaria remover o /etc/apache2/sites-enabled/000-default.conf e garantir que o example.com correspondesse ao VHost correto.

Possibilidade # 2

Verifique suas configurações em wp-config.php , ele deve corresponder ao que seus redirecionamentos estão apontando para;

define('WP_HOME','https://example.com');
define('WP_SITEURL','https://example.com');

Isso às vezes causa problemas com o wordpress, quando não corresponde ao que o apache deseja.

Resolução de problemas adicionais

A outra coisa é que você colou a configuração para um site link ;

 <VirtualHost *:80>
ServerName example.com 
...
</VirtualHost>

No entanto, a regra de reescrita parece que devolveria todas as solicitações para https: //

RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Então, provavelmente precisaríamos ver a configuração https também.

Além disso, você provavelmente deve colar a saída de access.log e error.log referentes a uma solicitação específica, para ver quais redirecionamentos realmente aconteceram.

Além disso, se você ainda não consegue ver o problema, pode ativar o registro de regravação;

 LogLevel alert rewrite:trace3

e, em seguida, rastreie o log para solicitações;

tail -f error_log|fgrep '[rewrite:' 
    
por 09.03.2018 / 17:18