Mr.KTO blog

Архив рубрики «FreeBSD»

Что можно сделать с Mod_Rewrite

27 сентября 2007

Здесь:

  1. HTTP-аутентификация в PHP-CGI (а не только как модуль Apache)
  2. Поддомен на папку (автоматические VirtualHost'ы-субдомены)
  3. Редирект на главный домен (с host.com на www.host.com или наоборот)
  4. (по теме) как создать файл .htaccess в Windows


1. HTTP-аутентификация для PHP-CGI

«HTTP-аутентификация в PHP возможна только при запуске РНР как Apache-модуля» - так написано в документации по PHP.

Итак, если в <apache_dir>/conf/httpd.conf включён модуль Mod_Rewrite (LoadModule...),
то создаём файл .htaccess в папке сайта и добавляем следующие строки:

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
  RewriteCond %{HTTP:Authorization} !^$
  RewriteRule ^file\.php$ file.php?HTTP_AUTH=%{HTTP:Authorization} [QSA,L]
</IfModule>

Первая строка (Options) может быть не нужна в зависимости от настроек хостинга.
Далее - мы проверяем, что есть непустой хидер Authorization и при запросе к file.php добавляем к нему GET-параметр HTTP_AUTH, при этом сохраняя другие параметры (QSA).

P.S: Также можно установить переменную окружения (environment valiable):

  RewriteEngine on
  RewriteRule .* - [E=HTTP_AUTH:%{HTTP:Authorization},L]

Она будет доступна через $_SERVER['HTTP_AUTH'], но скорее всего $_SERVER['REDIRECT_HTTP_AUTH'] - этот префикс добавляет апач.

Ещё информация об этом способе: http://joseph.randomnetworks.com/archives/...

После этого надо добавить в начало file.php:

if (isset($_GET['HTTP_AUTH'])) {
    preg_match('/^Basic\s+(.*)$/i', $_GET['HTTP_AUTH'], $mHA) or exit("Not supported HTTP_AUTH");
    list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = split(":", base64_decode($mHA[1]));
}

Теперь пример из документации по php будет работать!

2. Поддомен на папку (автоматические VirtualHost'ы-субдомены)

Далее »

Защищаем свой VDS-сервер

13 сентября 2007

Поскольку я только что переехал с FirstVDS на miniVDS (по сути - с VDS в России на сервер в Америке), то хочу рассказать об одном способе, который позволяет снизить угрозу взлома сервера.

Параллельно я расскажу об основных командах FreeBSD (многие аналогичны командам Linux/Unix).

Итак, через пару минут после оплаты VDS, мы получаем ip и пароль сервера, а также ссылки на панель IPS-manager (https://ваш_ip/manager/) и VDS-manager (напр. для переустановки VDS).

Заходим в IPS-manager, нас просят настроить часовой пояс, поменять root-пароль (меняем).
Пока больше здесь можно ничего не делать.

Терерь берём SecureCRT (или ваш любимый ssh-клиент) и соединяемся по ssh2, используя полученные ip и пароль.
В меню: Options\Session\Terminal\Emulation\Emacs\ отмечаем "Use ALT as meta key" - это нужно для эмуляции нажатий F1-F10 через нажания Alt+0 - Alt+9.

Видим приглашение

root@mrkto:/root#

Основы:

man man      главная справка
man команда  справка по команде
exit         выход из системы

Shift+Ins    вставить
Ctrl+C       выход из любой программы

мышкой выделять, правой кнопкой копировать и вставлять

Теперь давайте включим файервол. Далее »

Страница 1 из 11