A chamada para a API no site dirigido por Magento não funciona mais depois da mudança para o redirecionamento http / https [closed]

1

Um cliente me pediu para instalar um certificado tls em seu servidor da Web e fazer o redirecionamento http- > https. Depois de instalar o certificado e ajustar as regras de regravação da seguinte forma, tudo parecia funcionar bem:

    RewriteEngine on

    RewriteCond %{HTTP_HOST} !^www\. [NC] [OR]
    RewriteCond %{HTTPS} off 
    RewriteRule (.*) https://www.example.com%{REQUEST_URI} [R=301,L]


############################################
## rewrite API2 calls to api.php (by now it is REST only)

    RewriteRule ^api/rest api.php?type=rest [QSA,L]

############################################
## workaround for HTTP authorization
## in CGI environment

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

############################################
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks

    RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
    RewriteRule .* - [L,R=405]
<IfModule mod_setenvif.c>
    <IfModule mod_headers.c>

        ############################################
        # X-Content-Type-Options: nosniff disable content-type sniffing on some browsers.
        Header set X-Content-Type-Options: nosniff

        ############################################
        # This header forces to enables the Cross-site scripting (XSS) filter in browsers (if disabled)
        BrowserMatch \bMSIE\s8 ie8
        Header set X-XSS-Protection: "1; mode=block" env=!ie8

    </IfModule>
</IfModule>

############################################
## always send 404 on missing files in these folders

    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/

############################################
## never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

############################################
## rewrite everything else to index.php

    RewriteRule .* index.php [L]

MAS: há um cron job instalado por meio do painel do webmin, que era assim antes da instalação do redirecionamento http: > https:

wget -O /dev/null http://example.com/some_api

Infelizmente, o cliente não sabe muito sobre a API e não consigo ler a documentação, já que não tenho comando do idioma no qual ela está escrita.

O que eu descobri foi que a chamada acima desencadeia um processo de sincronização (dados do produto) entre a loja (magento) e o mongo db instalado no sistema.

Eu tentei adaptar a chamada acima ao redirecionamento http- > https usando a seguinte nova linha de comando:

wget -O /dev/null --ca-directory /home/user https://www.example.com/some_api

mas agora a sincronização não funciona mais (eu tive que prefixar o "www" ao nome do host usado originalmente desde que a solicitação ficou suspensa por muito tempo).

Quando iniciado manualmente a partir do webmin, recebo a seguinte saída:

--2018-09-28 18:00:32--  https://www.example.com/some_api
Resolving www.example.com (www.example.com)... 46.xxx.yyy.zzz
Connecting to www.example.com (www.example.com)|46.xxx.yyy.zzz|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://example.com/ [following]
--2018-09-28 18:00:32--  https://example.com/
Resolving example.com (example.com)... 46.xxx.yyy.zzz
Connecting to example.com (example.com)|46.xxx.yyy.zzz|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: '/dev/null'

     0K .......... .......... .......... .......... .......... 57.4M
    50K .......... .......... .......... ........              4.50M=0.009s

2018-09-28 18:00:33 (9.40 MB/s) - '/dev/null' saved [90479]

Obviamente, o pedido é redirecionado para o diretório DocumentRoot (contendo o arquivo index.php), mas a sincronização não é executada.

A partir desse ponto, não sei como prosseguir, pois meu conhecimento sobre APIs e seu comportamento sob as condições mencionadas é escasso. Talvez uma reescrita adequada da URL já seja suficiente.

Então, minha pergunta é: Como faço para que a chamada da API funcione novamente?

    
por wobits 28.09.2018 / 18:32

0 respostas