Все публикации
Создание поддомена (Рейтинг: +11)
Mod Rewrite
в корневой директории создаем .htaccess с содержанием:
RewriteEngine On RewriteCond %{HTTP_HOST} ^(.+)\.вашсайт\.com$ [NC] RewriteCond %{HTTP_HOST} !^www\.вашсайт\.com$ [NC] RewriteCond %{REQUEST_URI} !^/subdomains RewriteRule ^(.*) %{HTTP_HOST}$1 RewriteRule ^(.*)\.вашсайт\.com(.*) /subdomains/$1$2 RewriteRule ^subdomains\.(.*) /subdomains/$1и файл httpd.conf с содержанием:
<Directory /domains/вашсайт.com/html> Options FollowSymLinks AllowOverride All </Directory> <VirtualHost вашсайт.com> ServerAdmin admin@вашсайт.com ServerAlias *вашсайт.com Virtual DocumentRoot /domains/вашсайт.com/html/%1 ServerName вашсайт.com ErrorLog logs/вашсайт.com-error_log CustomLog logs/вашсайт.com-access_log common </VirtualHost>В корне создаем папку subdomains
Пример:
хотим получить поддомен umax.вашсайт.com
1 - идем в subdomains и создаем там папку umax
2 - всё!
Работа по каталогам (Рейтинг: +9)
Mod Rewrite
Часто хостинговые провайдеры накладывают ограничение на количество уикальных сайтов, и зачастую под это ограничение попадают и поддомены. Данное ограничение можно обойти средствами .htaccess. Например мы хотим направить поддомен forum.yourdomain.net на директорию ~/forum для этого необходимо направить нужные поддомены на папку с остновным сайтом и создать вложенную директорию например forum
RewriteEngine on RewriteCond %{HTTP_HOST} ^forum\.yuordomain\.net$ [NC] RewriteCond %{REQUEST_URI} !^/forum/$ [NC] RewriteRule (.*) /forum/$1 [L]
Перенос домена (Рейтинг: +4)
Mod Rewrite
Сайт перенесен с одного домена на другой с domain.com на domain2.com
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [R=301,1] RewriteRule ^(.*)$ http://www.domain2.com/$1
Редирект при ошибке (Рейтинг: +2)
Mod Rewrite
Перенаправление несуществующих URL на другой веб-сервер
RewriteEngine on RewriteBase / RewriteCond /your/docroot/%{REQUEST_FILENAME} !-f RewriteRule ^(.+) http://webserverB.dom/$1
Остановка сайта в работе и его индексация (Рейтинг: +7)
Mod Rewrite
Необходимо запрос любой страницы сайта отправлять на одну (будет написано что сайт временно ен доступен), но в то же время нужно оставить его открытым для поисковых машин. То есть для клиентов сайт закрыт, а для индексации - открыт.
RewriteEngine on RewriteBase / RewriteCond %{HTTP_USER_AGENT} !^yandex.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} !^googlebot.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} !^gaisbot.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} !^rambler.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} !^aport.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} !^metacrawler.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} !^msnbot.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} !^crawler.* [NC,OR] RewriteRule ^/$ - [L,R]
Работа сайта по времени (Рейтинг: 0)
Mod Rewrite
Указание доступа к сайту по времени
RewriteEngine on
RewriteCond %{TIME_HOUR}%{TIME_MIN} > 900
RewriteCond %{TIME_HOUR}%{TIME_MIN} < 1800
RewriteRule .* - [ F ]
Запрет боту Google (Рейтинг: +4)
Mod Rewrite
Жесткий запрет посещений нашего веб-сайта для робота поисковой системы Google
RewriteEngine on RewriteCond %{USER_AGENT} Googlebot RewriteRule .* - [F] # Другой вариант возвращает вместо ошибки 403 ( FORBIDDEN ) ошибку 404 ( NOT _ FOUND ) RewriteCond %{USER_AGENT} Googlebot RewriteRule .* - [R=404]
Динамическое подключение функций (Рейтинг: +10)
ООП
Когда функций очень много их неудобно хранить все в одном файле, да и зачем подключать километр кода когда нужно воспользоваться всего лишь парой функций, собственно решение:
Cоздаем в корне папку fun в которой будут хранится наши функции, по одному файлу на каждую, имя файла должно соответствовать имени функции, для примера создадим файл test.php с функцией test
<?php function test($val1, $val2, $val3){ return $val1.$val2.$val3; } ?>
Теперь класс который будет подключать наши функции
<?php class fun{ function __call($function, $value) { include_once $_SERVER['DOCUMENT_ROOT'].'/fun/'.$function.'.php'; return call_user_func_array($function, $value); } } ?>
Теперь воспользуемся нашей функцией "test"
<?php $fun =...
Модификаторы шаблонов PCRE (Рейтинг: +5)
Регулярные выражения
Ниже перечислены все доступные на сегодняшний день модификаторы. Имя, взятое в круглые скобки, указывает внутреннее PCRE имя для данного модификатора.
i (PCRE_CASELESS)
Если этот модификатор используется, символы в шаблоне соответствуют символам как верхнего, так и нижнего регистра.
m (PCRE_MULTILINE)
По умолчанию PCRE обрабатывает данные как однострочную символьную строку (даже если она содержит разделители строк). Метасимвол начала строки '^' соответствует только началу обрабатываемого текста, в то время как метасимвол "конец строки" '$' соответствует концу текста, либо позиции перед завершающим текст переводом строки (в случае, если модификатор D не установлен). В Perl ситуация полностью аналогична. Если этот модификатор используется, метасимволы...
Фильтрация входных данных в PHP (Рейтинг: +9)
Безопасность
Фильтрация входных данных — одна из самых важных вещей, которой надо уделять внимание при разработке веб-сайта. Опытным программистам это известно, а новички пусть запомнят одну очень важную вещь:
Данным, полученным от пользователя, доверять нельзя.
Что это значит? А это значит то, что если нам нужно, чтобы пользователь ввел число, это совсем не означает, что он введет именно число. Он может ввести что угодно. И поэтому нам необходимо проверить корректность введенных пользователем данных и оградить себя от возможных вследствие этого ошибок и улучшить безопасность наших скриптов.
Обычно для этого пользуются регулярными выражениями, но начиная с версии 5.2.0, в PHP есть специальные...