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

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


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 він уже лежить де потрібно)
debtredir.txt · Востаннє змінено: 2023/06/16 10:15 повз nightfly