Как-то странно получается в файле config переменная $charset = "utf-8" но строки в нем windows-1251.
Файл index сохранен в utf-8 но почему тогда там это:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
Приведите все к какой-то одной кодировке.
Теперь о том, почему так странно отображается письмо.
Основная проблема в неверном заголовке Content-Type пропущена точка с запятой после text/plain.
Также стоит заменить строчку с From на
$headers .= "From: =?$charset?B?".base64_encode($_POST['posName'])."?= <".$_POST['posEmail'].">\r\n";
И добавить еще парочку
$headers .= "Content-Transfer-Encoding: 8bit\n"; $subject = "=?$charset?B?". base64_encode($subject).'?=';
Вам нужно немного изменить вызов file_get_contents :
// Создаем поток$opts = array( 'http'=>array( 'method'=>"GET", 'header'=>"Accept-language: ru\r\n" ));$context = stream_context_create($opts);$content = file_get_contents($url, false, $context);
Там просто проверка заголовка Accept-language на наличие ru.
Вам хостер вполне внятно объяснил.
Что бы запрос robots.txt попал на обработку к apache, файл с таким именем должен отсутствовать, т.е. его нужно просто переименовать, например в new_robots.txt и тогда будет возможность применить к нему директивы .htaccess.
Нужно добавить RewriteRule ^robots.txt new_robots.txt сразу после правил для редиректа на www.
Должно получиться что-то вроде этого:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.example.com$ [NC] RewriteRule (.*) http://www.example.com/$1 [L,R=301] RewriteRule ^robots.txt new_robots.txt RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ index.php [L]
По результатам сервиса pingdom http://tools.pingdom.com/fpt/#!/b7dXOp/http://zfilm-hd.ru
видно, что сервер тратит более трех секунд только на генерацию страницы. Нужно искать, что именно тормозит, возможно, дело в настройках mysql может еще что.
Тоже вроде предлагают халяву hostcoke.com
Вероятно ТС хотел изобразить что-то вроде этого:
header("Content-Type: text/html; charset=utf-8"); $str="fire(nam)(olleh)world"; echo ("Длинна символов ".mb_strlen($str)."<br>"); if (mb_strlen($str<'200')){ echo 'Длинна строки превышена'; } else { echo preg_replace_callback('#\(?([a-z]+)(\)?)#', function ($m) { if (empty($m[2])) { return $m[1]; } else { return strrev($m[1]); } } , $str); }
Т.е при обращении к http://moysait.ru/nekotoryj-fail.htm возвращается не 301 а ошибка 404,
а страница http://moysait.ru/papka/nekotoryj-fail.htm возвращает 200 ?
Тогда вероятно nginx самостоятельно отдает .htm не передавая запрос apache.
RewriteCond %{DOCUMENT_ROOT}/papka%{REQUEST_URI} -f
RewriteRule ^ /papka%{REQUEST_URI} [L,R=301]