kernal panic – not syncing: I0-apic + timer doesn’t work!

Problem Description: kernal panic – not syncing: I0-apic + timer doesn’t work! boot with apic=debug and send a report. then try booting with the ‘noapic’ option

Solution: When booting, press downkey to free the Grub interface, press “e” to modify the bootline, and at the end of the line that begins with “kernel”, add in, without quotes, “noapic”, then save the file and reboot.

CentOS 5下配置vnc服务器(远程桌面)

1、检查vnc服务器端是否已经安装?

rpm -q vnc-server

2、将用户名成加入到vnc中

vim /etc/sysconfig/vncservers

添加如下两行

VNCSERVERS=”1:root”

VNCSERVERARGS[1]=”-geometry 1024×768″

3、设置vnc密码

vncpasswd

输入密码

4、启动vnc服务

/etc/init.d/vncserver start

应该可以启动成功了~

5、更改vnc的-window配置

cd ~/.vnc/

vim xstartup

注释掉一下行

#xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &

#startkde & #kde desktop

#twm & #Text interface

添加:

gnome-session & #set starting GNOME desktop

重启vnc服务。

/etc/init.d/vncserver restart

6、浏览器中访问

客户端安装不是必须的,浏览器即可访问~

web方式的vnc: http://hostname:port,默认port是5800。

port对比

VNC WEB-VNC

0 5800

1 5801

2 5802

Installing Hyper-V Linux Integration Components and Mouse Driver On CentOS 5

Microsoft has introduced together with Windows 2008 a new Hypervisor called Hyper-V. Initially Microsoft only supported Microsoft products and Novell Suse, but recently they added support for Red Hat Enterprise Linux. With this support it is also possible to install the components on CentOS.

1. Download Latest Linux Integration Components

You can download the exe file here. Extract it and copy the linuxic.iso somewhere you can mount it as a cdrom on your Virtual Machine.

2. Installation

To install the drivers we need the development tools. Easiest method to install those is via Yum.

yum groupinstall “Development Tools”

Next we will copy the contents of the cdrom to the server

mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cp -rp /mnt/cdrom /opt/linux_ic
umount /mnt/cdrom

Let’s create a new initrd image with the nessecary drivers.

cd /opt/linux_ic
make

make install

When this is finished you can safely shutdown the virtual machine and add the synthetic adapters (Network, SCSI, …). Once the machine is booted and logged in in you can verify the installation of the drivers with following command:

lsmod | grp vsc

netvsc 73704 0
storvsc 66824 0
blkvsc 70440 3
vmbus 86120 3 netvsc,storvsc,blkvsc
scsi_mod 196569 6 scsi_dh,sg,storvsc,blkvsc,libata,sd_mod

If you installed a synthetic Network Adapter you can verify with ifconfig -a and check if there is seth0.

3. Download the Mouse Driver

http://www.xen.org/files/Satori/inputvsc.iso

4. Installing Mouse Driver

mount /dev/cdrom /mnt/cdrom
cp -rp /mnt/cdrom /opt/linux_ic
umount /mnt/cdrom

cd /opt/linux_ic
./setup.pl

“Could not instantiate mail function” and “Value does not fall within the expected range” troubleshooting

The reason I wrote this article in English is that all these problems occured in English environment. You can reprint this article freely as long as you link back to http://www.techmemo.net/704.html/

These problems have bothered me for almost a whole day, and I finally got everything fixed now.

I ran into the error early this morning when I answered one of my clients’ ticket in WHMCS, the mail didn’t got through, it gave me an “Email Sending Failed – Could not instantiate mail function” error, I searched google for a few hours but none of them were really helping. So I decided to troubleshoot this by myself.

I started with checking Plesk’s mail system, well, another weired problem occured, I couldn’t start the website of Horde webmail. It gave me this error: “Value does not fall within the expected range”, I searched google again, but still nothing helped. I felt rather anoyed, I have been held up for almost a day trying to troubleshoot this. But when nothing can help me, I should help myself.

So I installed hMailServer and try to use AtMail instead, but again, I couldn’t start the website of AtMail webmail. Frustrated as I was, I had to find a solution. So I thought maybe there was a binding problem. And there was! One of my client was using Chinese domain name, but the binding was using Puny code, and IIS7.5/IIS7 don’t support Puny code, you should just input Chinese characters instead. So I did, and it worked!

Ok, the mail server part is solved, now I must handle the mail sending issue. At first I had no idea where to start. Then I decided to log SMTP activity, and I found those:

“SMTPD” 4244 38 “2010-08-14 17:45:49.968” “127.0.0.1” “SENT: 220 shawnidc.com ESMTP”
“SMTPD” 5468 38 “2010-08-14 17:45:49.984” “127.0.0.1” “RECEIVED: HELO ShawnIDC”
“SMTPD” 5468 38 “2010-08-14 17:45:49.984” “127.0.0.1” “SENT: 250 Hello.”
“SMTPD” 4244 38 “2010-08-14 17:45:49.984” “127.0.0.1” “RECEIVED: MAIL FROM:<[email protected]>”
“SMTPD” 4244 38 “2010-08-14 17:45:49.984” “127.0.0.1” “SENT: 250 OK”
“SMTPD” 4244 38 “2010-08-14 17:45:49.984” “127.0.0.1” “RECEIVED: RCPT TO:<[email protected]>”
“SMTPD” 4244 38 “2010-08-14 17:45:49.984” “127.0.0.1” “SENT: 550 Unknown user”

“SMTPD” 4244 38 “2010-08-14 17:45:50.000” “127.0.0.1” “RECEIVED: QUIT”
“SMTPD” 4244 38 “2010-08-14 17:45:50.000” “127.0.0.1” “SENT: 221 goodbye”

Ok, finally I figured out what was going on, the mail [email protected] is using his own mail server, ie. the MX record didn’t point to my server, but hMailServer still takes yyy.com as a local mail system.

So here is the solution. Check the log to find out which mail is not working and then delete the mail server record in hMailServer.

Finally, everything is working now. Hope my article could help you a bit! Please comment on this if you still have any questions.

IIS7/IIS7.5中绑定中文域名

刚刚发现有个客户绑定的中文域名没法正常解析,而且网站没法启动,后来上网查了资料才发现IIS7/IIS7.5可以直接绑定中文域名,不需要转换编码。
直接绑定中文域名就OK。

IIS 7/IIS7.5的500.19错误Value does not fall within the expected range

值不在预期范围内,也是因为这个引起的,按这个方法改了后就可以解决。

DDoS攻击原理与防御方法解析

DoS 攻击、DDoS攻击和DRDoS攻击相信大家已经早有耳闻了吧!DoS是Denial of Service的简写就是拒绝服务,而DDoS就是Distributed Denial of Service 的简写就是分布式拒绝服务,而DRDoS就是Distributed Reflection Denial of Service的简写,这是分布反射式拒绝服务的意思。    不过这3中攻击方法最厉害的还是DDoS,那个DRDoS攻击虽然是新近出的一种攻击方法,但它只是DDoS攻击的变形,它的唯一不同就是不用占领大量的“肉鸡”。这三种方法都是利用TCP三次握手的漏洞进行攻击的,所以对它们的防御办法都是差不多的。
    DoS攻击是最早出现的,它的攻击方法说白了就是单挑,是比谁的机器性能好、速度快。但是现在的科技飞速发展,一般的网站主机都有十几台主机,而且各个主机的处理能力、内存大小和网络速度都有飞速的发展,有的网络带宽甚至超过了千兆级别。
    这样我们的一对一单挑式攻击就没有什么作用了,搞不好自己的机子就会死掉。举个这样的攻击例子,假如你的机器每秒能够发送10个攻击用的数据包,而被你攻击的机器(性能、网络带宽都是顶尖的)每秒能够接受并处理100攻击数据包,那样的话,你的攻击就什么用处都没有了,而且非常有死机的可能。要知道,你若是发送这种1Vs1的攻击,你的机器的 CPU占用率是90%以上的,你的机器要是配置不够高的话,那你就死定了。

图-01 DoS攻击

    不过,科技在发展,黑客的技术也在发展。正所谓道高一尺,魔高一丈。经过无数次当机,黑客们终于又找到一种新的DoS攻击方法,这就是DDoS攻击。
    它的原理说白了就是群殴,用好多的机器对目标机器一起发动DoS攻击,但这不是很多黑客一起参与的,这种攻击只是由一名黑客来操作的。这名黑客不 是拥有很多机器,他是通过他的机器在网络上占领很多的“肉鸡”,并且控制这些“肉鸡”来发动DDoS攻击,要不然怎么叫做分布式呢。
    还是刚才的那个 例子,你的机器每秒能发送10攻击数据包,而被攻击的机器每秒能够接受100的数据包,这样你的攻击肯定不会起作用,而你再用10台或更多的机器来对被 攻击目标的机器进行攻击的话,嘿嘿!结果我就不说了。

图-02 DDOS攻击

    DRDoS分布反射式拒绝服务攻击这是DDoS攻击的变形,它与DDoS的不同之处就是DrDoS不需要在攻击之前占领大量的“肉鸡”。它的攻击原理和 Smurf攻击原理相近,不过DRDoS是可以在广域网上进行的,而Smurf攻击是在局域网进行的。它的作用原理是基于广播地址与回应请求的。
    一台计算机向另一台计算机发送一些特殊的数据包如ping请求时,会接到它的回应;如果向本网络的广播地址发送请求包,实际上会到达网络上所有的计算机,这时就会得 到所有计算机的回应。
    这些回应是需要被接收的计算机处理的,每处理一个就要占用一份系统资源,如果同时接到网络上所有计算机的回应,接收方的系 统是有可能吃不消的,就象遭到了DDoS攻击一样。
    不过是没有人笨到自己攻击自己,不过这种方法被黑客加以改进就具有很大的威力了。黑客向广播地址 发送请求包,所有的计算机得到请求后,却不会把回应发到黑客那里,而是发到被攻击主机。
    这是因为黑客冒充了被攻击主机。黑客发送请求包所用的软 件是可以伪造源地址的,接到伪造数据包的主机会根据源地址把回应发出去,这当然就是被攻击主机的地址。
    黑客同时还会把发送请求包的时间间隔减小 ,这样在短时间能发出大量的请求包,使被攻击主机接到从被欺骗计算机那里传来的洪水般的回应,就像遭到了DDoS攻击导致系统崩溃。骇客借助了网络中所有计算机来攻击受害者,而不需要事先去占领这些被欺骗的主机,这就是Smurf攻击。
    而DRDoS攻击正是这个原理,黑客同样利用特殊的发包工具,首 先把伪造了源地址的SYN连接请求包发送到那些被欺骗的计算机上,根据 TCP三次握手的规则,这些计算机会向源IP发出SYN+ACK或RST包来响应这个请求。
同Smurf攻击一样,黑客所发送的请求包的源IP地址是被攻击主机的地址,这样受欺骗的主机就都会把回应发到被攻击主机处,造成被攻击主机忙于处理这 些回应而瘫痪。

图-03 DRDoS分布反射式拒绝服务攻击

    解释:
    SYN:(Synchronize sequence numbers)用来建立连接,在连接请求中,SYN=1,ACK=0,连接响应时,SYN=1,ACK=1.即,SYN和ACK来区分 Connection Request和Connection Accepted.
    RST:(Reset the connection)用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误。
    ACK:(Acknowledgment field significant)置1时表示确认号(Acknowledgment Number)为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。TCP三次握手:

图-04 TCP三次握手

    假设我们要准备建立连接,服务器正处于正常的接听状态。
    第一步:我们也就是客户端发送一个带SYN位的请求,向服务器表示需要连接,假设请求包的序列号为10,那么则为:SYN=10,ACK=0,然后等待服务器 的回应。
    第二步:服务器接收到这样的请求包后,查看是否在接听的是指定的端口,如果不是就发送RST=1回应,拒绝建立连接。如果接收请求包,那么服务器 发送确认回应,SYN为服务器的一个内码,假设为100,ACK位则是客户端的请求序号加1,本例中发送的数据是:SYN=100,ACK=11,用这样的数据回应给我们。
    向我们表示,服务器连接已经准备好了,等待我们的确认。这时我们接收到回应后,分析得到的信息,准备发送确认连接信号到服务器。
    第三步:我们发送确认建立连接的信息给服务器。确认信息的SYN位是服务器发送的ACK位,ACK位是服务器发送的SYN位加1.即:SYN=11,ACK=101.这样我们的连接就建立起来了。
    DDoS究竟如何攻击?目前最流行也是最好用的攻击方法就是使用SYN-Flood进行攻击,SYN-Flood也就是SYN洪水攻击。SYN- Flood不会完成TCP三次握手的第三步,也就是不发送确认连接的信息给服务器。
    这样,服务器无法完成第三次握手,但服务器不会立即放弃,服务器会不停的重试并等待一定的时间后放弃这个未完成的连接,这段时间叫做SYN timeout,这段时间大约30秒-2分钟左右。
    若是一个用户在连接时出现问题导致服务器的一个线程等待1分钟 并不是什么大不了的问题,但是若有人用特殊的软件大量模拟这种情况,那后果就可想而知了。
    一个服务器若是处理这些大量的半连接信息而消耗大量的 系统资源和网络带宽,这样服务器就不会再有空余去处理普通用户的正常请求(因为客户的正常请求比率很小)。这样这个服务器就无法工作了,这种攻击 就叫做:SYN-Flood攻击。
    到目前为止,进行DDoS攻击的防御还是比较困难的。首先,这种攻击的特点是它利用了TCP/IP协议的漏洞,除非你不用TCP/IP,才有可能完全抵御住 DDoS攻击。不过这不等于我们就没有办法阻挡DDoS攻击,我们可以尽力来减少DDoS的攻击。下面就是一些防御方法:
    1.确保服务器的系统文件是最新的版本,并及时更新系统补丁。
    2.关闭不必要的服务。
    3.限制同时打开的SYN半连接数目。
    4.缩短SYN半连接的time out 时间。
    5.正确设置防火墙
    禁止对主机的非开放服务的访问,限制特定IP地址的访问,启用防火墙的防DDoS的属性,严格限制对外开放的服务器的向外访问,运行端口映射程序祸端口扫描程序,要认真检查特权端口和非特权端口。
    6.认真检查网络设备和主机/服务器系统的日志。只要日志出现漏洞或是时间变更,那这台机器就可能遭到了攻击。
    7.限制在防火墙外与网络文件共享。这样会给黑客截取系统文件的机会,主机的信息暴露给黑客,无疑是给了对方入侵的机会。
    8.路由器,以Cisco路由器为例,Cisco Express Forwarding(CEF),使用unicast reverse-path ,访问控制列表(ACL)过滤,设置SYN数据包流量速率,升级版本过低的ISO ,为路由器建立log server ,能够了解DDoS攻击的原理,对我们防御的措施在加以改进,我们就可以挡住一部分的DDoS攻击,知己知彼,百战不殆嘛。

WHMCS产品信息无法修改写入的解决办法

网站从美国搬到香港后,这个问题困扰了我好几天,最后整得没办法了,给WHMCS官方发邮件求助,解决办法很简单,去掉MYSQL的STRICT MODE问题就迎刃而解了。
具体方法:
Open your “my.ini” file within the MySQL installation directory, and look for the text “sql-mode”.
Find:

Code:
# Set the SQL mode to strict
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”Replace with:

Code:
# Set the SQL mode to strict
sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”Or, you can run an SQL query within your database management tool, such as phpMyAdmin:

Code:
SET @@global.sql_mode= ”;

关于中文的几个编码GB2312、GBK、GB18030、GB13000

1、 GB2312
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。

在windows中的代码页是CP936

2、 GBK
GBK最初是由微软对GB2312的扩展,也就是CP936字码表 (Code Page 936)的扩展(原来的CP936和GB 2312-80一模一样),最初出现于Windows 95简体中文版中,由于Windows产品的流行和在大陆广泛被使用,中华人民共和国国家有关部门将其作为技术规范。注意GBK并非国家正式标准,只是国家技术监督局标准化司、电子工业部科技与质量监督司发布的“技术规范指导性文件”。虽然 GBK收录了所有Unicode 1.1及GB 13000.1-93之中的汉字,但是编码方式与Unicode 1.1及GB 13000.1-93不同。仅仅是GB 2312到GB 13000.1-93之间的过渡方案。GBK收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。

GBK作为对GB2312的扩展,在现在的windows系统中仍然使用代码页CP936表示,但是同样的936的代码页跟一开始的936的代码页只支持GB2312编码不同,现在的936代码页支持GBK的编码,GBK同时也向下兼容GB2312编码。

3、 GB18030
2000年的GB18030取代了GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

GB18030在windows中的代码页是CP54936。

4、 GB13000
GB13000等同于国际标准的《通用多八位编码字符集 (UCS)》 ISO10646.1,就是等同于Unicode的标准,代码页等等的都使用UTF的一套标准。

从ASCII、GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

解密WHMCS IONCUBE LICENSE认证代码


“;
public function remotecheck(){
$localkeydays=10;
$whmcsurl=”http://74.54.136.212/~whmcscom/members/”;
$checkdate=date(“Ymd”);
$_SERVER$_SERVER;
$allowcheckfaildays=5;
$localkeyvalid=600;
while ($localkey) {
while ($localkeyvalid) {
$localexpiry=date(“Y”)()()date(“Ymd”,0,0,0,”m”)mktimedate;
$localmax=date(“Y”)()()date(“Ymd”,0,0,0,”m”)mktimedate;
$postfields$licensekey;
$postfields$_SERVER;
$postfields$usersip;
$postfields;
$ch=curl_init();
curl_setopt($ch);
curl_setopt($ch,1);
curl_setopt($ch,$postfields);
curl_setopt($ch,30);
curl_setopt($ch,1);
$data=curl_exec($ch);
curl_close($ch)curl_errno($ch)curl_error($ch);
$localexpiry=date(“Y”)()()date(“Ymd”,0,0,0,”m”)mktimedate;
$results=$localkeyresults;
$results;
preg_match_all(“/<(.*?)>([^<]+)<\/\1>/i”,$data,$matches);
$k$matches;
$results$matches$k$v;
$pos1=strpos($data,”“);
$licresponse=substr($data,0,$pos1);
$results$checkdate$results$results;
$data_encoded=serialize($results);
$data_encoded=base64_encode($data_encoded);
$data_encoded=strrev($data_encoded);
wordwrap($data_encoded,80,”\n”);
update_query(“tblconfiguration”);
$results;
$tempresults=$results(“|”)explode;
$tempresults;
$values=explode(“=”,$tempresult);
$configoptions$values$values;
$results$configoptions;
$tempresults=$results(“|”)()html_entity_decodeexplode;
$tempresults;
$tempresults2=explode(“;”,$tempresult);
$tempresults3=explode(“=”,$tempresult);
$temparr$tempresults3$tempresults3;
$addons$temparr;
$results$addons;
$results;
public function forceremotecheck(){
public function decodelocal(){
$_SERVER$_SERVER;
$localkey=str_replace(“\n”,”32945168″,$localkey);
$localdata=substr();
$md5hash=substr();
$localdata=strrev($localdata);
$md5hash=substr($localdata,32);
$localdata=substr($localdata,32);
$localdata=base64_decode($localdata);
$localkeyresults=unserialize($localdata);
$localkeyresults;
$results=$localkeyresults;
$validdomains=$results(“,”)explode;
$results;
echo “Local Key Validation Failed at Status Check
“;
in_array;
$results;
echo “Local Key Validation Failed at Domain Check
“;
$validips=$results(“,”)explode$results;
$validips$usersip;
$results;
echo “Local Key Validation Failed at IP Check
“;
$results;
$results;
echo “Local Key Validation Failed at Directory Check
“;
echo “Local Key MD5 Hash 2 Invalid
“;
echo “Local Key MD5 Hash Invalid
“;
while ($localkeyvalid) {
$tempresults=$results(“|”)explode;
$tempresults;
$values=explode(“=”,$tempresult);
$configoptions$values$values;
$results$configoptions;
$tempresults=$results(“|”)()html_entity_decodeexplode;
$tempresults;
$tempresults2=explode(“;”,$tempresult);
$tempresults2;
$tempresults3=explode(“=”,$tempresult);
$temparr$tempresults3$tempresults3;
$addons$temparr;
$results$addons;
$results$results;
$results;
Return ($localkeyvalid);
public function revokelocal(){
update_query(“tblconfiguration”);
public function getstatus(){
public function getbrandingremoval(){
$addon
$addon
?>

Discuz X1至今最完美的IIS7.5伪静态规则

IIS7本来是可以导入APACHE的伪静态规则的,但是后台产生的规则我用IIS导入没法正常使用,于是去网上找了一份规则,用是可以用了,但是还是存在两个问题:

1.首页门户文章没法正常显示,都是404错误

2.翻页有问题,比如一个帖子有3页,你要点两次第二页,他才会翻到第二页。

第一个问题昨天晚上我就发现了,用这句 替换掉相应位置的那一句就可以解决。
第二个问题是昨晚冕阿姨说了我才发现,当时搞鼓了一下,没结果,今天早上起来对比DZ的规则看了一下,发现了问题的所在。用这一句
替换对应的那一句就可以解决。

完整的规则如下:

<?xml version=”1.0″ encoding=”UTF-8″?>
<configuration>
   
<system.webServer>
        <rewrite>
          
 <rules>
                <rule name=”Imported Rule 1″>
       
            <match url=”^topic-(.+)\.html$” ignoreCase=”false” />
    
               <conditions logicalGrouping=”MatchAll”>
                
       <add input=”{QUERY_STRING}” pattern=”^(.*)$” ignoreCase=”false”
/>
                    </conditions>
                
   <action type=”Rewrite”
url=”portal.php?mod=topic&amp;topic={R:1}&amp;{C:1}”
appendQueryString=”false” />
                </rule>
          
     <rule name=”Imported Rule 2″>
                    <match
url=”^article-([0-9]+)-([0-9]+)\.html$” ignoreCase=”false” />
          
         <conditions logicalGrouping=”MatchAll”>
                      
 <add input=”{QUERY_STRING}” pattern=”^(.*)$” ignoreCase=”false” />
 
                  </conditions>
                    <action
type=”Rewrite”
url=”portal.php?mod=view&amp;aid={R:1}&amp;page={R:2}&amp;{C:1}”
appendQueryString=”false” />
                </rule>
          
     <rule name=”Imported Rule 3″>
                    <match
url=”^forum-(\w+)-([0-9]+)\.html$” ignoreCase=”false” />
                
   <conditions logicalGrouping=”MatchAll”>
                      
 <add input=”{QUERY_STRING}” pattern=”^(.*)$” ignoreCase=”false” />
 
                  </conditions>
                    <action
type=”Rewrite”
url=”forum.php?mod=forumdisplay&amp;fid={R:1}&amp;page={R:2}&amp;{C:1}”
appendQueryString=”false” />
                </rule>
          
     <rule name=”thread”>
                    <match
url=”^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$” />
                
   <action type=”Rewrite”
url=”forum.php?mod=viewthread&amp;tid={R:1}&amp;extra=page={R:3}&amp;page={R:2}”
/>
                </rule>
                <rule
name=”Imported Rule 5″>
                    <match
url=”^group-([0-9]+)-([0-9]+)\.html$” ignoreCase=”false” />
             
      <conditions logicalGrouping=”MatchAll”>
                      
 <add input=”{QUERY_STRING}” pattern=”^(.*)$” ignoreCase=”false” />
 
                  </conditions>
                    <action
type=”Rewrite”
url=”forum.php?mod=group&amp;fid={R:1}&amp;page={R:2}&amp;{C:1}”
appendQueryString=”false” />
                </rule>
          
     <rule name=”Imported Rule 6″>
                    <match
url=”^space-(username|uid)-(.+)\.html$” ignoreCase=”false” />
          
         <conditions logicalGrouping=”MatchAll”>
                      
 <add input=”{QUERY_STRING}” pattern=”^(.*)$” ignoreCase=”false” />
 
                  </conditions>
                    <action
type=”Rewrite” url=”home.php?mod=space&amp;{R:1}={R:2}&amp;{C:1}”
appendQueryString=”false” />
                </rule>
          
     <rule name=”Imported Rule 7″>
                    <match
url=”^([a-z]+)-(.+)\.html$” ignoreCase=”false” />
                
   <conditions logicalGrouping=”MatchAll”>
                      
 <add input=”{QUERY_STRING}” pattern=”^(.*)$” ignoreCase=”false” />
 
                  </conditions>
                    <action
type=”Rewrite” url=”{R:1}.php?rewrite={R:2}&amp;{C:1}”
appendQueryString=”false” />
                </rule>
          
 </rules>
        </rewrite>
   
</system.webServer>
</configuration>