blacks

Ошибка перенаправления в субдоменах

Ищутся добрые люди готовые помочь!

3и или 4е сутки не могу собрать следу штуку 🙁 :

ЗАДАЧА:
При заходе на site.spb.ru по установленным кукам посетитель перенаправлялся
на один из субдоменов и там оставался. Позже добавить на весь сайт редиект
«с www» на «без www».

ПОДРОБНЕЙ:
Пользователь заходит на site.spb.ru
В корне сайта лежит htaccess

RewriteEngine On
RewriteBase /

# субдомены – построены по правилам моего хостера
    RewriteCond %{HTTP_HOST} (www\.)?sub1\.site.\spb\.ru$
    RewriteCond %{REQUEST_URI} !^(/)? sub1/
    RewriteRule ^(.*)$ sub1/$1

    RewriteCond %{HTTP_HOST} (www\.)? sub2\. site.\spb\.ru$
    RewriteCond %{REQUEST_URI} !^(/)? sub2/
    RewriteRule ^(.*)$ sub2/$1

# прочитать значение куки и перенаправить на субдомен указанный в куки
    RewriteCond %{HTTP_COOKIE} setting=([^;]+) [NC]
    RewriteRule ^(.*)$ http://%1.site.spb.ru/ [R=302,QSA,L]

1. Если куки установлены то в зависимости от них идет перенаправление на
sub1.site.spb.ru или sub2.site.spb.ru

2. Если куков нет то ждется переход от пользователя на sub1.site.spb.ru или sub2.site.spb.ru
Где и ставятся куки.

ПРОБЛЕМА:
Редирект по куки на на субдомены идет но с ошибкой:

«Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.»
«Эта проблема может возникать при отключении или запрещении принятия cookies.»

Все вышесказанное работает на
виртуальном хостинге, PHP не используется, JavaScript тоже, остальные скрипты тоже
– Только META теги, htaccess, html !

Саппорт хостинга предложил что-то непонятное но вроде правдивое:

«Объясняю на примере
Итак, посетитель заходит на site.spb.ru, оттуда идет на страницу /sub1
Сейчас по умолчаню ему выдается cookie, а надо бы проверить реферер
Если реферрер НЕ sub1.site.spb.ru, то выдаем cookie и редиректим на поддомен

Поскольку посетитель новый, его перенаправили на поддомен
Итак, мы попадаем на ту же самую страницу. Но повторного редиректа не происходит,
поскольку этому мешает реферрер.»

= Пробовал закрывать по рефералу – не сработало 🙁

RewriteCond %{HTTP_REFERER} ^http://(www\.)?en\.site\.spb\.ru/index.html$ [NC,OR]

Кто может, помогите решением!
Если необходимо могу приаттачить в zip весь пример.

Помогите пожалуйста!

Первостепенная защита Php

Продолжаю изучение защиты сайта.

Недавно прочел несколько статей с предложением отключения некоторых функций PHP.
Но так как хостинг у меня только виртуальный и возможности править php.ini нет

Придется править .htaccess
Подскажите, поправте что не так. Что вкл а что выкл 🙂 ?
Вот несколько директив / функций которые как я понял желательно отключить:

safe_mode

  • проверяет владельца запущенного скрипта и если скрипт пытается открыть

какой-либо файл – делает это с правами этого владельца

php_admin_flag safe_mode on

register_globals
– Запретить создание глобальных переменных из пользовательского ввода

если включена, переменные GET, POST, Cookie, Server будут регистрироваться как глобальные переменные.
Если директива выключена, то глобальный доступ можно получить через массивы $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS

php_flag register_globals 0
php_value register_globals 0

allow_url_fopen
– запрет подключению сайта к удалённым страницам, скриптам.
это несколько замедлит работу программы – при каждом вызове *.php скриптов
будет происходить обращение к файлу .htaccess

    php_value allow_url_fopen 0
    php_flag allow_url_fopen 0

phpinfo
запретить опасные функции:

disable_functions=phpinfo,system,passthru,cmd

expose_php
– директива сообщает, может ли PHP оповещать пользователей о своем существовании на данном сервере, например, добавляя HTTP заголовок.

expose_php off

max_filesize
Ограничить размер загружаемого файла на сервер

upload_max_filesize = 2M

Ограничения на время работы

max_execution_time = 30

Отключить вывод ошибок
И включить директиву записи ошибок в лог-файл сервера.

В результате такого запроса, становится известен путь к скрипту и имя файла.
Если нет доступа к php.ini, можно добавить в начало скрипта строку error_reporting(0); это подавит вывод ошибок.

php_flag display_errors off
php_flag log_errors on
php_value error_log /home/ваш_путь/web/php_error.log
php_value error_reporting 2039

magic_quotes_gpc
– если включена, автоматически добавляет слеши к данным пришедшим от пользователя – из POST, GET запросов и cookie.

php_flag magic_quotes_gpc 0

magic_quotes_runtime
– если включена, автоматически добавляет слеши к данным, полученным во время исполнения скрипта – например, из файла или базы данных.

php_flag magic_quotes_runtime 0

Под вопросом:
php_value magic_quotes_sybase Off
php_value post_max_size 20M
php_value max_input_time 200

PS
Немного запутался в следующем:
1. safe_mode должен быть выключен или выключен?
2. функции должны включатся с помощью php_value или php_flag ? – поэтому некоторые примеры представлены в разных(двух) вариантах.
3. как включить некоторые функции в htaccess мне не удалось узнать поэтому они написаны в виде настроек для php.ini

Скрытие папок конфигов и др

У меня в htaccess есть несколько деректив отвечающих за защиту/скрытие папок:

    redirect /config http://www.microsoft.com
    redirect /wp http://www.microsoft.com

Как улушить код добавив функцию NoCase – неважности регистра букв в запросе?
(я не очень силен в htaccess)

Пока гуглил изучая вопрос нашел вот еще такой пример:

    RewriteRule ^(login|auth) /404 [L]  # для всех файлов в этих папках

Вот сижу "у разбитого карыта" и думаю что выбрать?

Спасибо.

Как выставить Utf-8 на сервере?

Собственно сабж по двум вариантам – не могу понять какой правильный

ВЕРСИЯ 1

<IfModule mod_charset.c>
CharsetDisable on
CharsetPriority UTF-8 windows-1251 koi8-r ISO-8859-5 ibm866
CharsetDefault utf-8
CharsetSourceEnc utf-8
AddDefaultCharset utf-8
DefaultLanguage ru-RU
</IfModule>

ВЕРСИЯ 2

CharsetDisable on
CharsetPriority UTF-8 windows-1251 koi8-r ISO-8859-5 ibm866
CharsetDefault utf-8
CharsetSourceEnc utf-8
AddDefaultCharset utf-8
DefaultLanguage ru-RU

Спасибо.

код из вылез на страницу!? – очень нужна помомщь

Привет всем.
Я тут впервые. Извините если что не так 🙂
(немного запутался в какой раздел писать)

Взял скаченный с интернета шаблон(бесплатный, хор работающий) и начал его править под себя.
В результате получился совсем другой 🙂

Но вот беда – обнаружил отступ в 15-20пикс сверху (в разных браузерах).

все margin и padding занулил
думал какой <div> по размеру не вышел и "вылез боком" в шапку но нет.
когда всем элементам поставил border 1px обнаружил непонятный блок сверху в всю ширину страницы

FireFox показал в этом блоке, в вехнем левом углу синий квадратик.
В квадратике почти(или все) пиксели это ссылки на css, rss, js – все то что должно быть между тегов <head>
Просмотр сгенерированного кода показал тоже самое.

На прикрепленных скринах показана страница в браузере и сгенерированный код
http://ripmagazine.ru/file/generated_code.png
http://ripmagazine.ru/file/glavnay.png

Ниже привожу код файла header.php из использованного шаблона.

Прошу вас о помощи!
Заранее всем откликнувшийся большое спасибо!

<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">

<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />

<?php wp_get_archives('type=monthly&format=link'); ?>
<?php wp_head(); ?>

<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> &raquo; Blog Archive <?php } ?> <?php wp_title(); ?></title>

<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
    <!--[if lt ie 7]>
        <link rel="stylesheet" type="text/css" media="screen" href="<?php bloginfo('stylesheet_directory'); ?>/ie-win.css" />
    <![endif]-->

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />

<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />

<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />

<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
    <link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/style-ecommerce.css" type="text/css" media="screen" />

</head>

<body>
    <center>
        <div id="wrapper2">
            <div id="header">
Anonymous
Отправить
Ответ на: