Nejste přihlášeni
Stránky 1
Dobry den,
dnes jsem pres Vas zaregistroval domenu masova23a.cz a zakoupil program PLUS. Bohuzel mi nefunguje https pristup.
http://masova23a.cz = OK
https://masova23a.cz/ == HTTPS nedostupné Https je dostupné pouze u plus programu
Chtel bych aby cela domena byla by default dostupna jen pres https
masova23a.cz/web/.htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Toto samozrejme nefunguje take.
Muzete mi prosim poradit co delam spatne, pripadne se na to zkusit podivat.
Moc dekuji
Offline
Uz by to melo bezet.
Https bohuzel takhle na endore testovat nelze
Offline
Uz by to melo bezet.
Dekuji za rychlou odpoved a opravu. Ted jiz pristup pres https funguje.
Https bohuzel takhle na endore testovat nelze
Lze toho dosahnout nejak jinak?
Dekuji
Offline
Testovani mozna jedine nejak pres php.
Offline
na Endore nefunguje cez PHP ani premenna $_SERVER['HTTPS'], neodovzda ziaden parameter (ani pri HTTP ani HTTPS), na zaklade ktoreho by bolo mozne dalej detekovat pouzity protokol, nie je mozne pouzit ani kontrolu portu, nakolko premenna $_SERVER['SERVER_PORT'] vzdy vrati hodnotu 80, takze sa neda nijakym sposobom detekovat ani pouzity odkaz v prehliadaci, da sa iba zistit server a pouzity prikaz, nie vsak protokol. daju sa na to pouzit aj prikazy Apache, ale tie su z bezpecnostnych dovodov samozrejme na Endore blokovane.
riesenim je zistenie URL prikazu cez JavaScript:
document.location.href
document.URL
vzor:
if (document.location.href.search("https://") == -1) {
// bol pouzity HTTP protokol
}
else {
// bol pouzity HTTPS protokol
}
alebo cez vlastne premenne:
var url = document.location.href;
var protokol = "https://";
if (url.search(protokol) == -1) {
// bol pouzity HTTP protokol
}
else {
// bol pouzity HTTPS protokol
}
alebo s presnou identifikaciou vysledkov (0 = zhoda):
if (document.location.href.search("https://") == 0) {
// bol pouzity HTTPS protokol
}
if (document.location.href.search("http://") == 0) {
// bol pouzity HTTP protokol
}
poznamka:
dovodom, preco JavaScript vie zistit vlozeny URL odkaz a PHP nie, je ten, ze JS je skriptovaci jazyk, ktory pracuje vyhradne na strane klienta (v prehliadaci) a PHP je programovaci jazyk na strane servera (pc, kde bezi web server a ine sluzby) a vsetky cinnosti (okrem cookies) sa vykonavaju prave na serveri a klient (prehliadac) vidi iba konecny vysledok, a ked server (Endora) blokuje urcite funkcie, nie je mozne tieto hodnoty korektne ziskat cez PHP... JS uz dnes nie je tak popularny ako kedysi a je z hladiska bezpecnosti rizikovy. mnohi uzivatelia blokuju pouzitie skriptov a preferuju "ciste" stranky bez skriptov. je teda nutne uviest do HTML kodu upozornenie cez znacku <noscript>, ze stranka vyzaduje pouzitie JS, inak funkcia nebude fungovat. kazdy, kto vytvara web musi mysliet aj na kontrolu funkcii a na situacie, ktore mozu nastat...
Program PLUS: www.piri.sk | www.dabingforum.sk | Na Endore od roku 2010 a nikde inde.
Offline
Je to uz sice davno, ale doplnam, ze Endora umoznuje zistit aky protokol bol pouzity, pouziva na to globalnu premennu $_SERVER["HTTP_X_FORWARDED_PROTO"].
PHP:
if (!empty($_SERVER["HTTP_X_FORWARDED_PROTO"])) {
if ($_SERVER["HTTP_X_FORWARDED_PROTO"] == "https") {
// je pouzite HTTPS
}
else {
// je pouzite HTTP
}
}
Upravil pirios (2019-03-24 16:08:32)
Program PLUS: www.piri.sk | www.dabingforum.sk | Na Endore od roku 2010 a nikde inde.
Offline
Https bohuzel takhle na endore testovat nelze
Proč?
Offline
Dobrý den,
je to způsobené technologickým stackem Endory, používáme reverzní proxy.
Ještě bych dodal že lze i v .htaccess kontrolovat X-Forwarded-Proto:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
Offline
Stránky 1