Мы будем Вам признательны, если Вы поддержите проект Open SLAED и используя Ваши возможности, разместите наш пресс-релиз на страницах своих сайтов, проектов, форумов, блогов. Текст пресс-релиза, возможно, видоизменить под Ваш формат, не искажая смысл. Пресс-релиз можно взять на данной странице.
Иногда возникает необходимость перенаправления определённого посетителя, допустим пришедшего с определённого сайта или определённой страны, на определённую страницу. Данную потребность, возможно, реализовать стандартными средствами системы. В качестве примера, ниже мы рассмотрим несколько вариантов.
Перенаправление посетителя пришедшего с определённого сайта
1. Войдите в панель управления системой, отдел: Панель администратора >> Редактор
2. В файл внедрения в шапку системы: config_header.php
Добавляем следующую запись:
$reflink - Отвечает за адрес нужного нам сайта
Заместо: slaed.net укажите свой домен.
$metlink - Отвечает за страницу, куда будет перенаправлен посетитель
Заместо: news.html укажите необходимую страницу или сайт.
Перенаправление посетителя из определённой страны
1. Войдите в панель управления системой, отдел: Панель администратора >> Редактор
2. В файл внедрения в шапку системы: config_header.php
Добавляем следующую запись
$userlang - Отвечает за нужную нам страну
Название страны не должно быть произвольным и должно соответствовать стандартам использования класса. Правильность написания той или иной страны можно проверить в переменной $COUNTRY_NAMES файла: function/geo_ip.php
$metlink - Отвечает за страницу, куда будет перенаправлен посетитель
Заместо: news.html укажите необходимую страницу или сайт.
Новое меню для SLAED CMS. Теперь неиспользуемые модуль автоматически скрываются. Но вы так же можете открыть список этих модулей. Вообщем пользуйтесь.
Возможности:
- Каждому модулю соответствует иконка. Иконка находится в папке модуля под названием icon_menu_home.gif.
- Если иконка отсутствует в папке модуля, берется иконка по умолчанию находящаяся в папке imges корневой папки под названием icon_menu_defual.gif.
- Иконка на главную страницу находится в той же папке, где и иконка по умолчанию, под названием icon_menu_home.gif.
- Активный модуль выбранный пользователем выделяется жирным, как и должно быть.
- Визуальный эффект при наведении курсора мышки на ссылку, в состоянии покоя картинка затуманена, в активном состоянии чёткая. (настраивается в коде самого скрипта*).
- Размеры иконок задаются пользователем в коде скрипта*.
- Возможность добавления собственных ссылок, в список навигации.
- Навигация администратора убрана в раскрывающийся список.
Все больше и больше в моей психотерапевтической практике появляется запросов от клиентов, связанных с интернет-зависимостью. Часто такие запросы исходят от родителей в отношении своих детей, или от одного из супругов в семье. Многих интересует негативное влияние на психику и здоровье чрезмерная работа в Интернете. Поэтому родилась идея рассказать моему читателю в доступной форме об это проблеме, различных гранях этого явления и обозначить момент, когда из простого увлечения работа в Интернете становиться зависимостью.
Отмечу, что изучение проблемы зависимости от Интернета началось не так давно, и научно-обоснованной базы, основанной на масштабных исследованиях недостаточна. Сегодня, в психологии зависимостей введено новое понятие Internet Addiction Disorder, которое очерчивает отличительные поведенческие стереотипы, характеризующие эту зависимость. Разберем некоторые из них. Внимание зависимого от Интернета человека преимущественно развернуто в виртуальное пространство глобальной сети. Если такого человека просят отвлечься на некоторое время, то в ответ могут последовать негативные эмоции. При вынужденном отстранении от любимого занятия, у зависимого лица имеет место повышенная раздражительность и нервозность. Т.е. обнаруживаются характерные для зависимостей эмоциональные проявления: в период ограничения (или просто отсутствия) интернет-общения зависимый переживает различные негативные эмоции; тогда, как, выход в Интернет резко поднимает настроение, появляется радость, творческий, эмоциональный и интеллектуальный подъем.
Пребывание в Интернете связано с особым состоянием сознания, своеобразным трансом, в котором присутствует особое ощущение времени, искажающие обычное восприятие времени. Как следствие человек совершенно не умеет следить за продолжительностью времени, и работает намного больше в Интернете, забывая о других делах. Отсутствие контроля за временем, приводит к возникновению ссор с близкими людьми, ревности близкого человека к этому занятию. Близкий человек получает послание - я не интересен(а), интересно что-то другое (Интернет). Такая конфликтность создает напряженность в семье, иногда может служить причиной ее разрушения, негативно влияет на близкий круга общения.
Данная зависимость также характеризуется психической зацикленностью на Интернете - глобальном информационном пространстве, которое невозможно изучить полностью, в силу постоянного обновления информационных ресурсов. Постоянным поиском в Интернете информации, человек, ставит непосильную задачу своему мозгу, который для реализации этой цели неизменно нуждается в химических стимуляторах. Не всегда имея возможность дать головному мозгу достаточное количество необходимых веществ (белков и крови, обогащенной кислородом), в качестве стимуляторов выступают кофе, сигареты и другие тонизирующие средства. Это косвенно развивает побочные зависимости от названных стимуляторов.
Несмотря на то, что сегодня еще не выработано научное объяснение психофизиологической природы данной зависимости отмечу его влияние на здоровье в целом. Так, отсутствие во время занятия в Интернете физической нагрузки, случайное наспех приготовленное однообразное питание - приводит к развитию хронических заболеваний, например гастрит. Адепт интернет-зависимости игнорирует собственное здоровье, способствуя развитию патологий сердечно-сосудистой системы и головного мозга. Например, перенапряжение глазных нервов, может приводить к истощению нервной системы и расстройству сна. Особенно негативно сказывается на здоровье чрезмерная работа за компьютером людей, с патологиями в области спины и шей. Если имеет место зажим артерий, снабжающих головной мозг кровью и питательными веществами, то работа на компьютере может быть значительно опасна для здоровья.
Интернет удовлетворяет две базовых потребности человека - общение и нахождение чего-то нового и интересного. Современное информационное общество формирует страх, что-то не успеть, разгоняя мышление человека в сторону патологического движения (стремления) за информацией. И Интернет как информационный инструмент, может предоставить решения для этого. Но постоянный поиск новизны, новых суррогатов чувств создает сильную эмоциональную привязанность.
Конечно интернет-зависимость это не алкогольная или наркотическая зависимость, но следует учесть, что сроки ее формирования значительно меньше, чем у названных. Вспомните, когда вам впервые купили компьютер, как много в начале вы проводили за ним времени. Но если «нормальный» человек, узнав, как работает эта машина, переключал свое внимание на что-то другое, то зависимый, уделял ей все больше и больше времени, оставляя на задворках, предыдущие занятия.
Зависимый человек не готов отказаться от интернет-удовольствия и не признает свое поведение как заболевание, как правило, игнорирует помощь (иногда в резкой форме), чем создает конфликтные ситуации с близкими людьми. Но, защищаясь от критики, генерирует у себя чувство вины, нервозность, и пытается скрыть свое поведение (работу в Интернете), но без успешно. Часто у родителей, приводящих ко мне своих детей на психологическую консультацию, возникает страх и нервозность, связанные с «невменяемостью» ребенка, на которого они не могут влиять уговорами, заняться чем-то другим «более интересным». Понимая, что ребенок развивается не в лучшем, как они думают направлении, она начинают его воспитывать, и терпят в этом крах.
Бегство в виртуальность от реальных проблем и людей может стоить человеку очень дорого. В настоящее время описаны негативные последствия интернет -зависимости: зафиксированы случаи, связанные со смертями из-за расстройства сна; при запрете заниматься в Интернете подростки совершают самоубийства и побеги из дома; имеет место развитие депрессии, после потери доступа в сеть, и другие эмоциональные расстройства; в качестве причин развода, супруги все чащи указывают причину интернет-зависимости другого супруга. Если зависимый человек, работает на предприятии, его вовлеченность в процесс может мешать ему выполнять свою работы, негативно отражаясь на карьере.
Кто же в первую очередь подвержен описанной зависимости? Психологи установили, что в группу риска входят люди с низкой самооценкой, с повышенной тревожностью и склонностью к депрессии. Именно такие люди ощущают свою беззащитность, часто переживают минуты одиночества, имеют мало социальных контактов (часто не умея их строить). Для них Интернет становиться полем, где они могут создать отношения, пусть и виртуальные. Они обладают возможностью выговориться, быть понятыми (или иметь свидетельства, что их поняли), и это дает свободу от внутренних переживаний и волнений, привнесенных из реальной жизни. Часто Интернет позволяет стать супер-героем и обладателем сверх - способностей. Это значительно повышает самооценку. Например, один мой клиент, уверял меня, что только он может взломать сервер Президента России.
Много людей, увлеченных Интернетом, обладают развитым мышлением (особенно абстрактным). По природе своей они индивидуалисты, не сильно нуждаются в реальных контактах с другими, и иногда их избегают. Им присуще стремление постоянно искать новые знания, осваивать новые области и виды деятельности, что является источником повышения их самооценки. Для них Интернет является средствам, где они могут выдать эмоции, которые не могут выразить в обычной обстановке, а иногда просто запрещенные для них в обычном общении с реальными людьми.
Появляются вполне закономерные трудности в понимании нормальной работы в Интернете и зависимостью от него. Ведь, почти любое увлечение в своих крайних формах дает определенные основания говорить о зависимости. Если человек говорит по телефону больше часа - стоит ли ему обращаться к психологу, или нет? Например, следует различать желание много работать за компьютером (для того, чтобы заработать деньги) от интернет-зависимости. В первом случае имеет место определенный трудоголизм, а не зависимость. И человеку в этом случае, нужно подумать о средствах психогигиены и физической разгрузки. При определении нормы и патологии, во главу должно ставиться не само время пребывания в Интернете, а тот ущерб в социальных контактах, производный от этой деятельности. Например, для многих бизнесменов жизнь и работа в «сети» это норма. Существует понятие интернет-бизнес, требующий постоянного нахождения в глобальной паутине. Или, следует отличать поиск информации для какой-то работы от «электронного бродяжничества», многочасовых рейдов в сети за новыми сайтами. В первом случае - есть конкретная цель, тогда, как во втором цель - сам процесс скитания по глобальной сети.
Интернет представляет возможность знакомиться и общаться с новыми людьми, поддерживать отношения с близкими, особенно если они далеко. Но, если эти отношения не перерастают в нормальное человеческое общение, а постоянно имеет место виртуальные отношения, то следует задуматься и возможно обратиться к психологу. Особое место занимают различные тотализаторы и игровые сайты. В данном случае, Интернет зависимость объединяется с игровой. Психики человека может быть нанесен значительный ущерб, так как подключаются новые эмоции, развивающие азарт и страсть.
В настоящее время разработано много различных тестов для самостоятельного определения людьми степени своей зависимости от Интернета. Но, пака говорить о том, что можно диагностировать такую зависимость только пройдя такой тест невозможно, в силу того, что почти 50% прошедшие такие тесты людей можно было отнести к зависимым от Интернета.
Если, прочитав эту статью, вы прейдете к выводу, что вы или ваш близкий человек подвержен интернет-зависимости, то следует обратиться за профессиональной психологической помощью. Хотя бы для того, чтобы удостовериться, что все нормально. Или для того, чтобы начать избавление этой зависимости.
Автор: Павел Пономарев
Источник: pavelp.ru
Дата: 08.12.2007 Модуль: Новости Категория: Интернет Разместил: psycholog
Последнее время в сети набирает популярность предоставление услуг или информации на платной основе по средствам оплаты через SMS сообщения. Принцип работ подобной услуги прост, посетитель сайта отправляет SMS на короткий номер, после чего получает пароль к доступу. В данной инструкции мы опишем установку SMS замка от сервиса MobilCent в модуле новостей, для ограничения подробного просмотра. Данная инструкция актуальна для всех версии Open SLAED и SLAED CMS 4 Pro. Установка замка на другие версии может иметь незначительные отличия, но в принципе похожа.
Откройте файл: modules/news/index.php
Найдите:
Замените на:
Обратите внимание!
Переменная $key_id отвечает за идентификационный номер Вашего сайта в системе MobilCent. Войдите на сайт: mobilcent.com, скопируйте свой ID и укажите его вместо номера: 000001
Преобразование ссылок в ЧПУ должно быть отключено.
Если используется кэширование, то активируйте его только для главной страницы.
Наболевший вопрос который уже ни раз поднимался и еще будет подниматься не только на нашем форуме но и в интернете. Часто на серьезных интернет проектах возникает необходимость создания нескольких сотен поддоменов. Создание их вручную займет не мало времени. Но есть способ сделать все намного проще.
Для того чтобы все настроить нажно проделать всего три шага:
Настроить зону в named-е
Настроить вхост в apach-е
Сделать правило через mod_rewrite
1. Первым делом нам нужно добавить “A” запись в фаил зоны: * 14400 IN A 192.168.0.1
Где * будет означать, что запись будет резолвить абсолютно любой поддомен, 14400 время обновления зоны и 192.168.0.1, это ip адрес куда будут направленны поддомены.
PS.: Стоит учитывать что named обрабатывает записи последовательно и любая запись добавленная после * не будет обработана.
2. Теперь переходим к конфигурировании веб сервера. Тут все проще, достаточно добавить директиву ServerAlias и все будет работать.
ServerAlias*.domen.ru
ServerAlias *.domen.ru
Где * будет означать что вхост обрабатывает все поддомены и все они будут направлены в один и тот же DocumentRoot, а domen.ru это наш домен.
PS.: Апач так же как и named читает конфигурационный фаил последовательно, поэтому любой поддомен добавленный ниже не будет обработан сервером.
3. Нам осталось создать правила mod_rewrite чтобы поддомен был направлен в папку домена. Создаем .htaccess следующего содержания:
Теперь любая папка например http://domen.ru/slaed/ будет доступна по адресу http://slaed.domen.ru/
Но такой вариант не всегда приемлем, и иногда нужно чтобы поддомены находились в вложенной папке скажем в http://domen.ru/sub/slaed/. Для этого делаем другой .htaccess:
Практически все панели управления позволяют сделать подобные вещи через внутренние интерфейсы, так что проблем быть не должно.
Чтобы создать собственный модуль для сайта, построенного с использованием SLAED, достаточно простейших знаний HTML и PHP, а также соблюдение их синтаксиса. Кроме этого потребуется правильная постановка задачи и внимательность. В качестве примера ниже приведены коды модулей, созданные для использования на всех версиях системы SLAED. При реализации модулей учитывайте, любой PHP код должен начинаться c <?php и заканчиваться ?>
1. Создание простейшего модуля
1.1. Представим себе, что Ваш сайт только на русском языке. Вы хотите для этого сайта сделать модуль «О компании». Для этого Вам нужно в директории http://www.ваш_сайт.com/modules/ создать поддиректорию «About_Company». В этой поддиректории должен находиться файл index.php. Вот как это должно выглядеть:
(Кроме модуля «About_Company» на скриншоте представлен ещё и модуль «Account».)
В файле index.php для простейшего модуля должен быть такой код:
Без комментариев код модуля «О компании» выглядит так:
В содержимое модуля можно вставлять не только текст, но и HTML-код, а также PHP-код. HTML-код нужно вставлять с соблюдением синтаксиса языка PHP.
1.2. Допустим, Вы хотите кроме текста на русском языке вставлять в модуль ещё и какие-то картинки. Для этого нужно добавить в директорию «About_Company» модуля «About_Company» поддиректорию «images», в которой будут храниться графические файлы. Структура директорий и файлов модуля «About_Company» будет выглядеть так:
building.jpg — это фотография здания компании company_logo.gif — это логотип компании director.jpg — это фотография директора фирмы index.html — это пустой файл, который нужен для того, чтобы невозможно было просмотреть браузером содержимое директории «images» map.gif — это карта проезда к зданию компании
Разумеется, могут быть и другие графические файлы. Вы можете задавать свои имена графическим файлам.
1.3. Предположим, что Ваш сайт не на одном языке (только на русском), а на нескольких языках (русском, английском и немецком). В этом случае структура директорий и файлов модуля «About_Company» будет выглядеть так:
language — это директория, содержащая в себе языковые файлы
.htaccess — этот файл запрещает всем доступ в директорию «language», в этом файле должна быть такая строка:
Файл .htaccess нужно создавать, редактировать и сохранять только в программе «Блокнот» (Notepad) под Windows, так как этот файл должен быть сохранён в кодировке Unix, что обеспечивает его правильную работу на web-сервере, использующего операционную систему Unix или ей подобную (Linux, FreeBSD).
index.html — это пустой файл, который нужен для того, чтобы невозможно было просмотреть браузером содержимое директории «language» lang-english.php — языковый файл модуля на английском языке lang-german.php — языковый файл модуля на немецком языке lang-russian.php — языковый файл модуля на русском языке
Код модуля «About_Company» в этом случае будет иметь вид:
Без комментариев код модуля «About_Company», который работает на мультиязычном сайте, имеет вид:
В языковых файлах lang-english.php и lang-german.php информация, представленная в файле lang-russian.php, должны быть переведена на соответствующие языки.
В данном примере всё содержимое (контент) и внутреннее оформление (дизайн) модуля «About_Company» находится в языковых файлах. Для более сложного содержимого модуля (таблицы, например) целесообразно размещать HTML-код в файле index.php модуля «About_Company», а в языковые файлы нужно выносить только языковые константы (define("_ABOUT_COMPANY_TITLE","О компании");, например), что существенно облегчит работу с языковыми файлами, а также позволитс меньшими затратами времени вносить изменения в контент и дизайн модуля.
1.4. Для доступа к страничке со списком учредителей компании нужно применить оператор switch.
Код файла index.php модуля «About_Company» должен иметь вид:
Без комментариев код модуля «About_Company» будет выглядеть так:
В языковом файле http://www.ваш_сайт.com/modules/About_Company/language/lang-russian.php (а также в файлы lang-german.php и lang-russian.php) должна быть языковая константа _ABOUT_COMPANY_FOUNDERS. Файл lang-russian.php будет иметь вид, как было указано выше.
Указанный модуль не хранит информацию в базе данных, что позволяет чуть быстрее выводить эту информацию на страничку в браузер посетителя сайта, к тому же такой способ хранения информации меньше загружает MySQL-сервер хостера.
Для внесения новой информации, для редактирования существующей информации в файлах модуля (языковые файлы http://www.ваш_сайт.com/modules/About_Company/language/lang-russian.php) требуются начальные знания синтаксиса HTML и PHP.
Чтобы создать собственный блок для сайта, построенного с использованием SLAED, достаточно простейших знаний HTML и PHP, а также соблюдение их синтаксиса. Кроме этого потребуется правильная постановка задачи и внимательность. В данной статье мы рассмотрим варианты ручного создания файловых блоков. В качестве примера ниже приведены коды, созданные для использования на всех версиях системы SLAED.
Для начала необходимо создать файл в директории блоков blocks/ Для того, что бы система идентифицировала данный файл как файловый блок, название файла должно быть такого типа: block-ваше_название.php В самом файле, для вывода информации необходимо использовать переменную $content за место стандартных методов echo или print, это единственная отличительная особенность которую нужно учитывать. Всё остальное реализуется при помощи стандартных методов и функций PHP и HTML. При реализации блоков учитывайте, любой PHP код должен начинаться c <?php и заканчиваться ?>
Ниже мы рассмотрим варианты реализации блоков на примерах реализованных в коде, с комментариями участков.
Пример 1
Пример 2
В примерах ниже мы рассмотрим варианты вывода информации в блок из других файлов.
Для работоспособности примеров:
1. Создаём файл demo.txt в директории blocks/ Директория значения не имеет, файл может находиться на другом сайте. Важно указать точный путь к файлу!
2. В файле напишите произвольный текст на своё усмотрение. Содержание данного файла может быть любым.
В качестве содержание файла demo.txt предлагаю использовать изначальный текст:
Пример 3
Пример 4
После того как файловый блок создан и находится в директории blocks/ необходимо добавить и активировать его в панели администратора системы, в отделе блоков: Панель администратора >> Блоки и баннеры >> Добавить новый блок
Заголовок – Указываем название для блока
Ссылка на канал RSS – Оставляем пустым
Время обновления – Оставляем как есть
Имя файла – Выбираем созданный файловый блок
Содержание – Оставляем пустым
Позиция – Выбираем на своё усмотрение
Отображать блок в модулях - Выбираем на своё усмотрение
Язык - Выбираем на своё усмотрение
Активировать? – Да
Время работы, в днях – 0 без ограничений
После истечения – Если без ограничений, оставляем как есть
Кто это будет видеть? - Выбираем на своё усмотрение
Я встречал много вопросов связанных с интеграцией обычных шаблонов под шаблоны SLAED CMS. У многих нету ни денег, ни опыта. В бесплатной помощи отказываю, в результате чего все плохие, никто не помогает. Для создания шаблонов последних версий SLAED CMS требуются только знания HTML и CSS. Нестандартный шаблон можно сделать и без внутренних изменений системы, т.е. без вмешательства php, для этого существуют переменные в шаблонизаторе системы
Если внимательно прочитать слова Гроссмана "Сложные проблемы всегда имеют простые, легкие для понимания неправильные решения", то можно понять, что на первый взгляд это всё трудно, но поняв сутьсмысл это можно будет щелкать как орешки. Вернемся к самой статье. Лично я выделяю два вида интеграций: 1 - внедрение в стандартную тему (интеграция на существующую тему), 2 - преобразование HTML (интеграция с нуля).
Очень важную роль играет то, какой шаблон Вы выбрали. Не каждый шаблон можно интегрировать без головные боли. Некоторые авторы шаблонов создают их так, что они не пригодны даже даже для использования их как обычных HTML шаблонов без полной смены структуры.
Когда Вы подобрали HTML, выбираем наиболее доступные для Вас способ интеграции:
Внедрение в стандартную тему (интеграция на существующую тему)
Этот способ включает в себя замены в стандартной темы index.html, и доработкой в style.css, ну а так же где потребуется в остальных файлах .html чтобы придать законченный вид шаблону.
1) Для начала нужно проанализировать структуру HTML шаблона.
2) Далее пожалуй самый сложный этап: из шаблона нужно удалить так называемое лишние (java-срипты, коментарии, лищние рисунки), при этому не нарушая структуру сайта, что является очень частой ошибкой начинающих, в результате чего итоговый templates будет кривой (не правильная структура сайта).
3) Заменяем index.html в стандартном шаблоне SLAED CMS (Default)
4) Включаем страницу и видим «Daring copyrights of system, you break the license of use!». Не надо пугаться, на данном этапе так и должно быть.
5) Изменяем путь до изображений. Перед изображением вписывает такой путь: "/templates/$ThemeSel/images/"
6) Слудующий этап будет заключаться в внедрении переменных. index.html должно содержать следующие: {%HEAD%}, {%BLOCKS left%}, {%BLOCKS message%}, {%BLOCKS center%}, {%MODULE%}, {%BLOCKS down%}, {%BLOCKS foot%}, {%BLOCKS time%}, {%LICENSE%}, {%BLOCKS variables%}, {%BLOCKS query%}.
7) Подстраиваем остальные .html файлы под дизайн.
8) Самым последнем моментом ювелирная работа с style.css (кстати часть style.css можно вырвать из <head> начального HTML шаблона)
Преобразование HTML (интеграция с нуля)
Этот вид более трудоемкий и требует больших знаний. Но он даст Вам желаемый результат. Как говорится «Без труда, не вытащишь и рыбку из пруда». Суть этого вида заключается в том, что Вы практически «создаете» тему. Если быть точнее то Вы вставляете код шаблона в index.html бедующей темы, а остальные части сайта прорабатываете сами.
В прошлой главе мы познакомились с основами модуля mod_rewrite. В примере, который был рассмотрен, мы использовали конструкцию, которая в буквальном смысле означает следующее: «Если кто-то пытается получить доступ к файлу .htaccess, выдается ошибка, сообщающая, что доступ к файлу запрещен».
Это «правило» глобально, то есть каждый получит указанное сообщение об ошибке. Напомню, что mod_rewrite является модулем, который предоставляет «основанный на правилах механизм динамического изменения запрашиваемых URL-ов».
Мы можем ограничивать «правило» при помощи различных «условий правила». «Правило» будет выполнено только в том случае, если перед ним будет встречен ряд условий.
Синтаксис: условие должно предшествовать правилу!
Возьмем еще один пример (запись в файле .htaccess):
Назначение первых трех записей было подробно разобрано в первой части публикации. Их функция - включение «движка перезаписи», то есть самого модуля.
Последние две строки запрещают доступ поисковому роботу под кодовым названием «EmailSiphon» (имеется ввиду имя юзер-агента). Данный робот является сборщиком почтовых адресов с различных веб страниц.
Проверочная строка – переменная сервера, которая может быть записана в общей форме: «% {ИМЯ_ПЕРЕМЕННОЙ}».
Образец условия – регулярное выражение. Для более полного понимания темы стоит рассмотреть регулярные выражения как класс.
Регулярные выражения – это механизм, позволяющий задать шаблон для строки и осуществить поиск данных, соответствующих этому шаблону в заданном тексте. Кроме того, дополнительные функции по работе с такими выражениями позволяют получить найденные данные в виде массива строк, произвести замену в тексте по шаблону, разбиение строки по шаблону и т.п. Однако главной их функцией, на которой основаны все остальные, является именно функция поиска в тексте данных, соответствующих шаблону (образцу), описанному в синтаксисе регулярных выражений.
Регулярные выражения подобны маленькому, компактному языку программирования со своими правилами.
Например, регулярное выражение:
заменит строку «abc», на строку «xyz» во всем тексте.
Вот краткий обзор наиболее важных элементов с некоторыми примерами:
. (точка) - текст (любой символ)
| - чередование (то есть/abc|def/)
* - квантификатор (разрешено любое число)
^ $ - якоря строки
s - оператор (string1 заменить на string2)
g - модификатор (искать по всему тексту)
Регулярные выражения конструируются с помощью этих элементов и других «обычных» символов. Они не являются отдельным языком, а используются другими средствами, например языками программирования типа Perl или PHP, а также текстовыми редакторами (Emacs).
Если говорить о связи регулярных выражений и модуля mod_rewrite, то они используются в директивах RewriteRule и RewriteCond.
«^» обозначает начало строки. Из этого следует, что UserAgent должен начинаться со строки «EmailSiphon» и ни с чего другого («NewEmailSiphon», например, не работал бы).
Но, поскольку данное регулярное выражение не содержит символ "$" (якорь конца строки), UserAgent мог бы быть, например, «EmailSiphon2».
Последняя строка нашего примера:
определяет, что именно нужно делать, когда робот запросит доступ.
Регулярное выражение «^.*$» означает: «Доступ ко всем файлам запрещен».
Точка «.» в регулярном выражении – мета символ (подстановочный знак), означающий любой случайный символ.
«*» означает то, что строка может встречаться неограниченное количество раз. В этом случае, независимо от имени запрошенного файла, будет выдана ошибка.
«EmailSiphon», конечно, не единственный почтовый сборщик. Другой известный член этого семейства - «ExtractorPro». Допустим мы хотим запретить доступ и этому роботу. В таком случае нам необходимо еще одно условие.
Теперь файл .htaccess будет выглядеть так:
Третий аргумент [OR] (в первой строке RewriteCond) называется «флагом». Существуют два возможных флага:
NC – не учитывать регистр букв.
OR – означает «или следующее условие».
Флажок NC позволяет игнорировать регистр букв в искомом образце. Например:
Эта строка определяет, что и "emailsiphon" и "EmailSiphon" будут признаны как идентичные выражения.
Вы можете использовать сразу несколько флажков, разделяя их запятыми.
Нет никаких ограничений по числу условий. Таким образом, Вы можете блокировать 10, 100, 1000 или более известных почтовых сборщиков. Определение этих 1000 условий – просто вопрос загрузки сервера и прозрачности файла «.htaccess».
В вышеупомянутом примере используется глобальная переменная «HTTP_USER_AGENT». Существуют также другие переменные: REMOTE_HOST, REMOTE_ADDR
Например, если Вы хотите заблокировать паука пришедшего с www.site.ru, Вы можете использовать глобальную переменную «REMOTE_HOST» таким образом:
Если Вы хотите заблокировать определенный IP адрес, условие будет выглядеть так:
В регулярном выражении по проверке точного и полного IP адреса нужно использовать начальные и конечные якоря.
Также можно исключить целый диапазон:
Этот пример показывает, как можно заблокировать диапазон IP адресов с 212.37.64.0 по 212.37.64.255.
А вот маленькая задачка для проверки приобретенных знаний (решение будет дано в следующей части):
Внимание, вопрос!
Если мы пишем в регулярном выражении «^212.37.64» вместо «^212.37.64.» (с точкой в конце), то даст ли это тот же самый эффект, и будут ли исключены те же самые IP адреса?
До сих пор мы использовали простой RewriteRule, который генерирует сообщение об ошибках. В третьей части публикации мы проанализируем, как можно использовать RewriteRule для переадресации посетителей к определенным файлам.
Вы наверняка встречали в сети термин «mod_rewrite». Для наших читателей, которые не до конца знакомы с этим модулем веб сервера Apache, а также для тех, кто вообще первый раз об этом слышит – постараюсь рассказать в этой публикации (в нескольких частях) подробнее о данном модуле.
Модуль mod_rewrite является программным модулем веб сервера Apache (обратите внимание, что он не будет выполняться под другими веб серверами!). Его первичная функция - манипуляция действий с URL. Модуль очень универсален и разносторонен, поэтому я постараюсь показать здесь множество реальных примеров.
Mod_rewrite является замечательным модулем, который предоставляет «основанный на правилах механизм динамического изменения запрашиваемых URL-ов». Это действительно мощный инструмент, и поэтому, его знание принципиально важно, если вы хотите стать подлинным веб мастером или веб программистом. Не столько принципиально, будете ли вы использовать его в своей работе, сколько важно то, что вы знаете, что он может делать, и сможете поведать об этом своему боссу, когда появится желание сделать что-нибудь странное с веб сервером.
Однако нужно быть очень осторожным и даже дотошным при работе с этим модулем! Некоторые ошибки, которые Вы способны допустить, могут привести к логической петле, причиняя непрекращающуюся 100%-ую загрузку ценрального процессора (CPU).
Чтобы не казаться пространным в рассуждениях, приведу некоторые очень простые примеры.
Прежде, чем мы сможем приступить к работе, Вы должны будете проверить, установлен ли модуль на вашем веб сервере или нет.
Есть несколько способов проверить это:
1. Спросить вашего системного администратора - знает ли он (или она) о наличии этого модуля на веб сервере. Они действительно должны знать, но как показывает практика – попадаются и не очень сведующие сисадмины ...
2. Не напрягайте других: если Вы используете ваш веб сервер с сотнями других доменов, ваши действия могут разбудить некоторых спящих собак, поскольку использование mod_rewrite будет всегда влечь за собой некоторую увеличенную загрузку ценрального процессора.
3. Проверить ваш файл конфигурации Apache (httpd.conf), если Вы имеете к нему доступ. Один из возможных стандартных путей может быть: /etc/httpd/httpd.conf
Однако, ваш путь может очевидно отличаться от этого. Проверить работу вашего сервера с ниже приведенными примерами. Если сервер работает без ошибок – mod_rewrite действительно установлен на вашей системе. Если нет, Вы получите следующее сообщение при запросе любой web-страницы с вашего сервера: «Внутренняя ошибка сервера» Также, Вы увидите такую запись в файле «error.log»: «Invalid command 'RewriteEngine', perhaps mis-spelled or defined by a module not included in the server configuration».
Теперь давайте копнем поглубже и посмотрим первый практический примерчик.
Предположим, что Вы будете использовать mod_rewrite только для вашего собственного сайта, то есть не как обобщенную перекрестную установку сервера.
Для нашего примера потребуется использование файла .htaccess. Для работы этого метода, Вы должны загрузить файл под названием «.htaccess» (пожалуйста, обратите внимание на точку в начале имени файла!) в папку сервера, с которой Вы будете работать. Это можно сделать через telnet или ftp. (Предупреждение: .htaccess должен быть загружен в «режиме ASCII», то есть не в бинарном режиме!)
Если у Вас уже имеется файл «.htaccess», например со следующими записями:
то просто добавьте снизу наш образец кода к уже существующему (Важно: редактируйте ваш файл .htaccess в ASCII-редакторе типа Notepad).
Первые две записи запустят сам модуль:
Совет: запись «RewriteEngine off» отменит все последующие команды. Это - очень полезная особенность: вместо необходимости комментировать все последующие строки – все, что Вы должны сделать, это установить «off».
Если ваш системный администратор запрещает Вам использование «Options +FollowSymlinks», Вы не сможете ограничить использование mod_rewrite для отдельных каталогов, вместо этого изменения будут действовать на весь сервер.
Следующая необходимая запись - это:
«/» является корневым (основным) URL. Если у Вас какой-то другой URL, Вы можете указать это в данной директиве, однако «/» – обычно эквивалентно адресу «http://домен.ру».
А теперь, господа, перейдем к более интересным записям!
Предположим, что вы хотите защитить от несанкционированного доступа ваш файл .htaccess. На некоторых серверах Вы можете легко читать этот файл просто вводя URL следующего формата в поле адреса вашего браузера: http://www.domain.com/.htaccess – серьезное упущение защиты, так как содержание вашего .htaccess может показать важную информацию об установках и настройках вашего сайта человеку, знающему как эти знания применить против вас.
Чтобы блокировать этот доступ, запишем следующее:
Это правило переводится так:
Если кто-то пробует обращаться к файлу .htaccess, система должна произвести код ошибки «HTTP response of 403» или «403 Forbidden - You don't have permission to access /.htaccess on this server».
Конструкция ^.htaccess$ в этом регулярном выражении означает:
^ – якорь начала строки
$ – якорь конца строки
. – в регулярных выражениях точка «.» обозначает мета-символ и должна быть защищена обратным слэшем (backslash), если Вы все-таки хотите использовать именно фактическую точку.
Имя файла должно быть расположено точно между начальным и конечным якорем. Это будет гарантировать то, что только это определенное имя файла и никакое другое, сгенерирует код ошибки.
[F] – специальный «запрещающий» флажок (forbidden).
В этом примере, файл ".htaccess" теперь будет состоять из таких строк:
Если мы добавим наш код (в примерах) к существовавшему ранее файлу «.htaccess», то получим следующую конструкцию:
Это введение затрагивает лишь основы, требуемые для того, чтобы работать с модулем mod_rewrite. Во второй части этой обучающей серии статей постараюсь объяснить использование различных условий в конфигурировании модуля.
Ссылка по теме: URL Rewriting Engine
Автор статьи: Denveroid
Источник: sitemaker.ru