Magento tarafından yönlendirilen web sitesindeki API’ye yapılan çağrı, http / https yeniden yönlendirmesinde değişiklik yapıldıktan sonra artık çalışmıyor


1

Bir müşteri benden web sunucusuna bir tls sertifikası kurmamı ve http- & gt; https yönlendirmesini yapmamı istedi. Sertifikayı kurduktan ve yeniden yazma kurallarını aşağıdaki gibi ayarladıktan sonra her şey yolunda görünüyordu:

    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]

ANCAK: http://tr; https yönlendirmesinin kurulumundan önce webmin paneliyle bu şekilde görünen bir cron işi var:

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

Maalesef müşteri API hakkında fazla bir şey bilmiyor ve belgeyi okuyamıyorum, çünkü yazıldığı dilden hiçbir emrim yok.

Öğrendiğim şey, yukarıdaki çağrının (magento) mağaza ile sistemde kurulu mongo db arasında bir senkronizasyon işlemini (ürün verileri) tetiklemesiydi.

Aşağıdaki çağrıyı aşağıdaki yeni komut satırını kullanarak http- & gt; https yönlendirmesine uyarlamaya çalıştım:

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

fakat şimdi senkronizasyon artık işe yaramıyor (istek yaşları için askıya alındığı için "www" yi başlangıçta kullanılan ana bilgisayar adına hazırlamak zorunda kaldım).

Webmin içinden manuel olarak başlatıldığında aşağıdaki çıktıyı alıyorum:

--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]

Açıkçası, istek DocumentRoot dizinine (index.php dosyasını içeren) yönlendirilir, ancak senkronizasyon yürütülmez.

Bu noktadan sonra, daha ileriye nasıl devam edeceğimi bilmiyorum, çünkü API'ler ve belirtilen koşullar altındaki davranışları hakkındaki bilgilerim az. Belki de URL’nin uygun bir şekilde yeniden yazılması yeterli olacaktır.

Öyleyse sorum şu: API çağrısını tekrar nasıl çalıştırabilirim?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.