Autor Zpráva
AntonP
Profil
Dobrý deň.

Robím PHP script pre mobilniplatby. Všetko je tak, ako chcem a scripty sú hotové. Ale má to jeden háčik. Script pre vygenerovanie odpovedi má vrátiť http status 200 a script pre doručenku má vrátiť status 204. Lenže obidve scripty vrátia http status 301... Aj keď do scriptu dám napr. header("HTTP/1.1 204 NO CONTENT");. Som vďačný za každú radu, už si neviem rady. Ďakujem a prajem pekný zvyšok dňa.
Kajman
Profil
Při 301 se vrací i location. Jaká je tam adresa? Neopraví tím server např. doménu nebo protokol?
AntonP
Profil
Dobrý deň,
ako to zistím? Script testujem cez testovací emulátor, ktorý je administracií. Ten píše, že očakávaný status je napr. 200, ale dostal 301.
Keeehi
Profil
AntonP:
A když na tu URL vlezeš přímo v prohlížeči?
AntonP
Profil
No keď tam mám ten header 204 no content, tak to ani neotvorí a vráti ma to -1 stránka do histórie. To znamená, že zadám adresu do prehľiadaca, dám enter a nič sa nestalo.
Keeehi
Profil
A není to náhodou tak, že nejdříve se to pomocí 301 přesměruje a ta další stránka po přesměrování vrátí 204?

Otevři si vývojářské nástroje (většina prohlížečů to má pod f12) a tam záložku Síť (Network). Pak zadek normálně URL. V těch vývojářských nástrojích bys měl vidět, jaké požadavky prohlížeč posílá a jaké dostává odpovědi.
Kajman
Profil
V tom sledování sítě, ale nemusí být odpověď serveru vidět, pokud už na tu url byl požadavek dříve, protože prohlížeč si cachuje 301 odpovědi. Takže pro testování čistěte pokaždé cache nebo zadávejte url, co jste ještě nezadával (např. přidejte parametr ?test=42, 43, 44).

A ještě jednou si zkontrolujte, zda aplikace a prohlížeč koukají naprosto na stejnou url (http - https, www - bez www).
AntonP
Profil
No... Na script je potrebné http://, ale ja mám (aj v .htaccess) nastavené https://... Preto asi píše 301 redirected, teraz som si to uvedomil... Dá toto nejak vypnúť iba v konkrétnej stránke?
Kajman
Profil
Platební brána vyžaduje http? To by mělo být spíše naopak, že má vyžadovat https.

Ale ano, výjimka z přesměrování je možná. Např. přidáním
RewriteCond %{REQUEST_URI} !^/jedna/url/adresa$
nad pravidlo, které přesměrování provádí.
AntonP
Profil
Áno, je to divné, ale keď tam napíšem https:// tak napíše "Chyba pri testovani!", takže potrebuje http...


Nad pravidlo, ktoré presmerováva z http na https som dal:
RewriteCond %{REQUEST_URI} !^/domains/pay.(mojadomena).eu/(nazovZlozkySoScriptmy)$
Adresu to stále presmeruje na https.
Keeehi
Profil
AntonP:
Áno, je to divné, ale keď tam napíšem https:// tak napíše "Chyba pri testovani!", takže potrebuje http...
Ne, nepotřebuješ http. Ty potřebuješ vyřešit tu chybu.
AntonP
Profil
Keeehi:
Ak je chyba v kóde, tak to napíše inak a nie do alertu (teda tak to je na mobilniplatby) :D Napíše to ako červený box a v ňom je napísané niečo ako "Váš skript neodpovídá dle specifikace". A keď to https tam nedám a napíšem tam http://..., tak je to vporiadku.
Kajman
Profil
Specifikace asi vyžaduje správné nastavení https. Zkuste se poradit s podporou toho testovacího emulátoru.

Jinak ve výjimce na REQUEST_URI má být jen cesta za doménou viditelná v prohlížeči.
AntonP
Profil
Dobrý deň, vyriešené, https to zoberie normálne, ale nefunguje na testovacom emulátore. Ďakujem za pomoc.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: