<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[观夏Note]]></title> 
<link>//gm.angeldm.com/index.php</link> 
<description><![CDATA[新技术番]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[观夏Note]]></copyright>
<item>
<link>//gm.angeldm.com/post//</link>
<title><![CDATA[n(n1)级域名自动生成并绑定的说明]]></title> 
<author>果面 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[网络应用]]></category>
<pubDate>Thu, 17 Jul 2008 10:27:52 +0000</pubDate> 
<guid>//gm.angeldm.com/post//</guid> 
<description>
<![CDATA[ 
	一、启用该功能的要求<br/><br/>1.必须是apache服务器<br/><br/>2.apache必须已经打开mod_rewrite<br/><br/><br/>如果windows下在httpd.conf中将附图上这行的注释符去掉就行了<br/><br/><br/>如果您是*nix下编译安装，可以参考这个编译参数，这样会把重写模块编译进apache核心中，加快处理速度<br/>./configure &#92;<br/>--prefix=/usr/local/apache &#92;<br/>--with-mpm=prefork &#92;<br/>--enable-so &#92;<br/>--enable-rewrite=static &#92;<br/>--enable-track-vars<br/><br/>3.网站的域名必须做泛解析，就是让*.site.com都能指向的您服务器<br/><br/>本地测试可以修改hosts文件，模拟泛解析<br/><br/><br/><br/>二、配置过程：<br/><br/>1.配置apache的重写表，重写表保存有n级域名和子店实际物理地址的映射关系。<br/><br/>在include/mall_config.php中<br/>$RewriteMap_Url="rmap/vhost.map";<br/>设置apache重写表的保存地址，它的位置是相对与syssite目录。<br/>重写表的格式如下<br/>n级域名 子店的实际物理地址<br/>样例：<br/><br/>shop1.www.xuni.com D:/Server/wwwroot/shopexm47/syssite/home/shop/00/00/01<br/><br/>2.在apache的配置文件httpd.conf中启用rewrite map功能<br/><br/>打开apache的配置文件httpd.conf在末尾添加以下配置信息<br/><br/><br/>*nix系统的内容如下<br/><br/>RewriteLog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logs/rewrite.log<br/>RewriteLogLevel&nbsp;&nbsp;&nbsp;&nbsp;0<br/>RewriteEngine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on<br/>RewriteMap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lowercase int:tolower<br/>RewriteMap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vhost txt:/var/www/html/syssite/rmap/vhost.map<br/>RewriteCond&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&#123;lowercase:%&#123;HTTP_HOST&#125;&#124;NONE&#125; ^(.+)$<br/>RewriteCond&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&#123;vhost:%1&#125; ^(/.*)$<br/>RewriteRule&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^/(.*)$ %1/$1 [E=VHOST:$&#123;lowercase:%&#123;HTTP_HOST&#125;&#125;]<br/><Directory "/var/www/html/syssite/rmap/syssite/rmap"><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options -Indexes FollowSymLinks<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AllowOverride none<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order deny,allow<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deny from all<br/></Directory><br/><br/><br/>windows系统的内容如下<br/><br/>RewriteLog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logs/rewrite.log<br/>RewriteLogLevel&nbsp;&nbsp;&nbsp;&nbsp;0<br/>RewriteEngine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on<br/>RewriteMap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lowercase int:tolower<br/>RewriteMap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vhost txt:D:/Server/wwwroot/shopexm47/syssite/rmap/vhost.map<br/>RewriteCond&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&#123;lowercase:%&#123;HTTP_HOST&#125;&#124;NONE&#125; ^(.+)$<br/>RewriteCond&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&#123;vhost:%1&#125; ^(D:/.*)$<br/>RewriteRule&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^/(.*)$ %1/$1 [E=VHOST:$&#123;lowercase:%&#123;HTTP_HOST&#125;&#125;]<br/><Directory "D:/Server/wwwroot/shopexm47/syssite/rmap"><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options -Indexes FollowSymLinks<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AllowOverride none<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order deny,allow<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deny from all<br/></Directory><br/><br/><br/><br/>附图中的<br/><br/>RewriteLogLevel&nbsp;&nbsp;&nbsp;&nbsp;5<br/><br/>是用于调试用的，这样可以在logs/rewrite.log中看到形如：<br/><br/>127.0.0.1 - - [10/May/2007:11:33:42 +0800] [shop1.www.xuni.com/sid#2cc240][rid#5934a80/initial] (4) RewriteCond: input='shop1.www.xuni.com' pattern='^(.+)$' => matched<br/>127.0.0.1 - - [10/May/2007:11:33:42 +0800] [shop1.www.xuni.com/sid#2cc240][rid#5934a80/initial] (5) map lookup OK: map=vhost[txt] key=shop1.www.xuni.com -> val=D:/Server/wwwroot/shopexm47/syssitehome/shop/00/00/01<br/>127.0.0.1 - - [10/May/2007:11:33:42 +0800] [shop1.www.xuni.com/sid#2cc240][rid#5934a80/initial] (4) RewriteCond: input='D:/Server/wwwroot/shopexm47/syssitehome/shop/00/00/01' pattern='^(D:/.*)$' => matched<br/>127.0.0.1 - - [10/May/2007:11:33:42 +0800] [shop1.www.xuni.com/sid#2cc240][rid#5934a80/initial] (2) rewrite '/index.php' -> 'D:/Server/wwwroot/shopexm47/syssitehome/shop/00/00/01/index.php'<br/><br/>以上的log片段就是一个rewrite的过程。<br/><br/>设为5是用于调试的，实际使用环境下务必将RewriteLogLevel 设置为0，否则rewrite的log很快将您的磁盘撑爆！<br/><br/><br/>要点：<br/><br/>1.正则^(.+)$ 要和vhost.map的第一部分匹配，在这个例子中^(.+)$是可以匹配shop1.www.xuni.com的<br/><br/>2.正则^(D:/.*)$要和vhost.map的第二部分匹配，在这个例子中^(D:/.*)$是可以匹配D:/Server/wwwroot/shopexm47/syssite/home/shop/00/00/01的<br/><br/>3.vhost.map的地址要用*nix like的格式，就是要用/表示目录，而不是windows的&#92;<br/><br/>所以win的主机要用<br/>RewriteCond&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&#123;vhost:%1&#125; ^(D:/.*)$<br/>把盘符D:加入到正则中，如果您的web文件不是放在D盘而是E盘，要把D:改为E:。<br/>而*nix没有盘符，所以用<br/>RewriteCond&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&#123;vhost:%1&#125; ^(/.*)$<br/><br/><br/>如果vhost.map不存在，要自己用touch建一个，否则apache无法启动<br/><br/>4.这段配置信息的位置，一般放在httpd.conf的末尾。但是如果您的总站是用VirtualHost进行绑定，请将以上的配置信息放在第一个VirtualHost的段中。<br/><br/>样例：<br/><VirtualHost 10.1.2.3><br/>&nbsp;&nbsp; DocumentRoot&nbsp;&nbsp; /www/docs/host.foo.com<br/>&nbsp;&nbsp; ServerName&nbsp;&nbsp;host.foo.com<br/>&nbsp;&nbsp; ErrorLog&nbsp;&nbsp;logs/host.foo.com-error_log<br/>&nbsp;&nbsp; TransferLog&nbsp;&nbsp;logs/host.foo.com-access_log<br/><br/>&nbsp;&nbsp; RewriteLog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logs/rewrite.log<br/>&nbsp;&nbsp; RewriteLogLevel&nbsp;&nbsp; 0<br/>&nbsp;&nbsp; RewriteEngine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on<br/>&nbsp;&nbsp; RewriteMap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lowercase int:tolower<br/>&nbsp;&nbsp; RewriteMap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vhost txt:/var/www/html/syssite/rmap/vhost.map<br/>&nbsp;&nbsp; RewriteCond&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&#123;lowercase:%&#123;HTTP_HOST&#125;&#124;NONE&#125; ^(.+)$<br/>&nbsp;&nbsp; RewriteCond&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&#123;vhost:%1&#125; ^(/.*)$<br/>&nbsp;&nbsp; RewriteRule&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^/(.*)$ %1/$1 [E=VHOST:$&#123;lowercase:%&#123;HTTP_HOST&#125;&#125;]<br/>&nbsp;&nbsp; <Directory "/var/www/html/syssite/rmap/syssite/rmap"><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options -Indexes FollowSymLinks<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AllowOverride none<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Order deny,allow<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Deny from all<br/>&nbsp;&nbsp;</Directory><br/></VirtualHost> 
]]>
</description>
</item><item>
<link>//gm.angeldm.com/read.php?&amp;guid=0#topreply</link>
<title><![CDATA[[评论] n(n1)级域名自动生成并绑定的说明]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>//gm.angeldm.com/read.php?&amp;guid=0#topreply</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>