Користувальницькькі налаштування

Налаштування сайту


debtredir

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
debtredir [2015/03/20 13:24]
debtredir [2023/06/16 10:15] (поточний)
nightfly
Рядок 1: Рядок 1:
 +====== Перенаправлення боржників у кабінет користувача ======
  
 +Для початку припустимо, що ви настільки ліниві, що навіть не потрудилися підняти свій власний DNS сервер і використовуєте пресети Ubilling-а "як є". Також будемо сподіватися, що в бік користувачів заглядає інтерфейс em0 з призначеною адресою 172.16.0.1. Можливо, ви навіть не потрудилися піднімати нормальних віртуалхостів для типових сервісів, які надає Ubilling. \\
 +Нічого - сьогодні будемо вважати, що це система для ледачих :)\\
 +
 +Отож малюємо в кінці **/etc/firewall.conf** таку радість:
 +
 +<code>
 +#Debtors forwarding
 +${FwCMD} add 4 allow ip from table\(2\) to 8.8.8.8 dst-port 53 via em0
 +${FwCMD} add 4 allow ip from 8.8.8.8 to table\(2\) src-port 53 via em0
 +${FwCMD} add 4 allow ip from table\(2\) to me dst-port 80 via em0
 +${FwCMD} add 4 allow ip from me to table\(2\) src-port 80 via em0
 +${FwCMD} add 6 fwd 127.0.0.1,80 ip from table\(47\) to not me dst-port 80
 +${FwCMD} delete 65534
 +</code>
 +
 +Де 8.8.8.8.8, як не складно здогадатися, - адреса DNS сервера, який ви роздаєте своїм користувачам.
 +
 +А в **/usr/local/www/apache22/data/index.php** щось типу цього:
 +<file php index.php>
 +<?php
 +    function rcms_redirect($url, $header = false) {
 +        if($header){
 +            @header('Location: ' . $url);
 +        } else {
 +            echo '<script language="javascript">document.location.href="' . $url . '";</script>';
 +        }
 +    }
 + 
 +  
 +    $userip=$_SERVER['REMOTE_ADDR'];
 + 
 +    if (strpos($userip,'172.32.')===false)  {
 +        rcms_redirect("http://172.16.0.1/billing/userstats/");
 +    } else {
 +        rcms_redirect("http://172.32.0.1/uhw/");
 +    }
 +?>
 +</file>
 +
 +Щоб редірект працював для URL, відмінних від "/", можемо додати у файлик **/usr/local/www/apache24/data/.htaccess** такий ось обробник 404:
 +
 +<code>
 +    ErrorDocument 404 /index.php
 +</code>
 +
 +
 +
 +<file php debtors.php>
 +#!/usr/local/bin/php
 +<?php
 +
 +$config=parse_ini_file(dirname(__FILE__)."/config");
 +$link = mysql_connect($config['host'], $config['username'], $config['password']);
 +mysql_select_db($config['database']);
 +$data_q='SELECT `ip` FROM `users` WHERE `Cash`< -`Credit`';
 +$data=mysql_query($data_q);
 +           while ($row = mysql_fetch_array($data, MYSQL_ASSOC)) {
 +                shell_exec("/sbin/ipfw -q table 47 add ".$row['ip']);
 +           }
 +
 +</file>
 +
 +(починаючи з Ubilling 0.4.4 він уже лежить де потрібно)