jkm

Рейтинг
120
Регистрация
20.02.2014

Как-то странно получается в файле 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.

Utr:

При обращении к
http://moysait.ru/nekotoryj-fail.htm
должен показываться файл, который на самом деле имеет адрес:
http://moysait.ru/papka/nekotoryj-fail.htm
и при этом редиректиться 301 редиректом, чтобы не было дубля для ПС.
Записи по отдельности не проходят, т.к. файлов тысячи.

RewriteCond %{DOCUMENT_ROOT}/papka%{REQUEST_URI} -f

RewriteRule ^ /papka%{REQUEST_URI} [L,R=301]

Всего: 749