RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !/robots\.txt
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Другой вариант, подходит для sweb.ru
RewriteEngine On
RewriteCond %{HTTP:HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
SetEnvIf X-Forwarded-Proto https HTTPS=on
Подходит для nic.ru или infobox.ru
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !/robots\.txt
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Подходит для jino.ru
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteCond %{REQUEST_URI} !/robots\.txt
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
В примере нужна реализация api для формы, отправляемой с помощью Angular JS. Данные отправляются в Request Payload (название из консоли Google Chrome) при этом массив $_POST — пуст.
Чтобы получить эти данные
В виде json:
echo file_get_contents('php://input');
В результате получим:
{"jsonrpc":"2.0","method":"Widget.ContactForm.sendMessage","id":"0","params":{"message":{"name":"Krylov","email":"[email protected]","address":"+78120000000","message":"test"},"placeholder":{"name":"Name *","email":"E-mail *","address":"Cell ","message":"Comment *"},"hash":"1@KfwalNFOU1rJqW8s4ffYsHg/zlhRhCTLd0XubaAkcVIxhpL227jVj+ZAWVdgge1+eCLe7c1ww+VOT4b26gDXlUvAl39DeMXMzCbqxgK9/e0O1VIIpXX8YYdD0za2rC0nsBHkw0/Ing7u+pYK5KoIpqk4L47Q7DtNRVbLglD6Fm0="}}
В виде массива:
print_r(json_decode(trim(file_get_contents('php://input')),true));
В результате получим:
Array
(
[jsonrpc] => 2.0
[method] => Widget.ContactForm.sendMessage
[id] => 0
[params] => Array
(
[message] => Array
(
[name] => Krylov
[email] => krylov@krylov.org.ua
[address] => +78120000000
[message] => test
)
[placeholder] => Array
(
[name] => Name *
[email] => E-mail *
[address] => Cell
[message] => Comment *
)
[hash] => 1@KfwalNFOU1rJqW8s4ffYsHg/zlhRhCTLd0XubaAkcVIxhpL227jVj+ZAWVdgge1+eCLe7c1ww+VOT4b26gDXlUvAl39DeMXMzCbqxgK9/e0O1VIIpXX8YYdD0za2rC0nsBHkw0/Ing7u+pYK5KoIpqk4L47Q7DtNRVbLglD6Fm0=
)
)
Пример простейшей обработки:
header('Content-Type: application/json');
$data=json_decode(trim(file_get_contents('php://input')),true);
if(count($data['params']['placeholder'])>0){
$message='';
foreach($data['params']['placeholder'] as $k=>$v){
$message.='<b>'.$v.':</b> '.$data['params']['message'][$k].'<br/>';
}
$from='=?utf-8?B?'.base64_encode('Site Name').'?=';
$subject='=?utf-8?B?'.base64_encode('Contact Form').'?=';
$headers="Content-Type: text/html; charset=utf-8\r\n";
$headers.="From: \"".$from."\"<noreply@".$_SERVER['HTTP_HOST'].">\r\n";
if(mail('[email protected]',$subject,$message,$headers)){
exit('{"result":true,"id":"'.$data['id'].'","jsonrpc":"2.0"}');
}
}
exit('{"error":{"code":-32600,"message":"Invalid Request","data":null},"id":null}');
В случае если, $_SERVER[‘HTTP_IF_MODIFIED_SINCE’] отсутствует:
.htaccess
RewriteEngine on
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
php:
session_cache_limiter('private_no_expire');
session_start();
При наведении на блок c overflow:hidden; отображается не поместившееся содержимое — overflow:visible; при этом этому блоку добавляется position:absolute;z-index:200;
(при наведении на карточку товара показываем больше информации о нем)
Проблема в Safari в следующем: после того как убираем мышь — не поместившееся содержимое не исчезает.
Решаем с помощью jquery:
$(document).ready(function(){
$('#content').css('height',$('#content').height());
$('.catalog_item').on('mouseleave',function(){
$(this).parents(".catalog_container").hide().show(0);
});
});
Вначале устанавливаем родительскому блоку с контентом статическую высоту чтобы страница не дергалась при перерисовке .catalog_container
Затем перерисовываем родительский элемент.
На основе: http://stackoverflow.com/questions/31587890/safari-on-mac-not-updating-redrawing-after-hover-effect
http://www.idivision.ru/2010/10/24/cbrf-exchange-rates-php-class/
$rates=new ExchangeRatesCBRF(date('Y-m-d'));
$eurocb=$rates->GetRate("EUR");