Все публикации

Создание поддомена (Рейтинг: +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 есть специальные...

Топ статей / Облако тегов / Поиск / Авторы