<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[北京SEO_北京SEO培训 - 【元创SEO】]]></title> 
<link>http://www.yuan-chuang.cc/index.php</link> 
<description><![CDATA[元创拥有10多年网络营销和SEO实战经验、管理经验。 《SEO实战 - 核心技术、优化策略、流量提升》一书作者。SEO实战家、推一把联合创始人]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[北京SEO_北京SEO培训 - 【元创SEO】]]></copyright>
<item>
<link>http://www.yuan-chuang.cc/read.php/82.htm</link>
<title><![CDATA[apache域名泛解析]]></title> 
<author>元创 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[SEO知识库]]></category>
<pubDate>Tue, 06 Jan 2009 10:42:22 +0000</pubDate> 
<guid>http://www.yuan-chuang.cc/read.php/82.htm</guid> 
<description>
<![CDATA[ 
	<strong>apache对域名的泛解析</strong><br/>泛域名解析是指将*.域名解析到同一IP。 <br/>在域名前添加任何子域名，均可访问到所指向的WEB地址。也就是客户的域名achuan.net之下所设的*.achuan.net全部解析到同一个IP地址上去。<br/>在DNS服务器上添加一条A记录。其中，“主机名”填写“*” ，“指向”填写为自己网站的服务器IP。这样所有<br/>*.achuan.net都指向222.222.222.222　所以不管你二级名是什么，如：ooo.achuan.net都解析到这个IP上。最主要的是apache的配置了。<br/>将所有的虚拟主机段先删除，加入<br/>ServerName local<br/>ServerAlias *<br/>UseCanonicalName OFF<br/>VirtualDocumentRoot D:/www/%1<br/>ServerName在这里不起作用，ServerAlias会将域名解析到D:/www下对应的目录，这样就不用每次都修改httpd.conf文件了。<br/>需要注意的是使用VirtualDocumentRoot指令需要加载mod_vhost_alias模块，<br/>去掉包含mod_vhost_alias行对应的LoadModule和AddModule前面的"#"，restart一下apache就OK了<br/>试了一下，果然很爽，可以使用<br/>VirtualDocumentRoot /www/%2+<br/>来实现泛解析，不过不管什么二级域名都被解析到根目录了，郁闷！也就是说<br/>*.achuan.net 会被指向 /www/achuan.net<br/>再想想，于是，可以用<br/>VirtualDocumentRoot /www/%2+/%0<br/>来实现二级域名分目录，即<br/>www.achuan.net 会被指向 /www/achuan.net/www.achuan.net<br/>test1.achuan.net 会被指向 /www/achuan.net/test1.achuan.net<br/>test2.achuan.net 会被指向 /www/achuan.net/test2.achuan.net<br/>有点不足，这样，www.achuan.net 也需要在achuan.net目录下再建一个目录了，要是www能到根目录，其他二级域名到二级目录就好了，不过也好，这样规范点，呵呵<br/>主要是以下这2句，再也不用一个个绑域名了，只需要建立对应域名的目录<br/>UseCanonicalName Off<br/>VirtualDocumentRoot /www/%2+/%0<br/>==============================================================<br/>一、使用 mod_vhost_alias<br/>1. 简单的动态虚拟主机<br/># 从 Host: 头中取得服务器名字 Server Name<br/>UseCanonicalName Off<br/># 这里的日志格式，可以在将来通过第一个参数域来分隔不同的虚拟主机的日志<br/>LogFormat "%V %h %l %u %t &#92;"%r&#92;" %s %b" vcommon<br/>CustomLog logs/access_log vcommon<br/># 在返回请求的文件名的路径中包含进服务器名字: server name<br/>VirtualDocumentRoot /www/hosts/%0/docs<br/>VirtualScriptAlias /www/hosts/%0/cgi-bin<br/>2. 更为有效的基于 IP 地址的虚拟主机<br/># 从 IP 地址反解析得到服务器名字（server name）<br/>UseCanonicalName DNS<br/># 在日志中包含 IP 地址，便于后续分发<br/>LogFormat "%A %h %l %u %t &#92;"%r&#92;" %s %b" vcommon<br/>CustomLog logs/access_log vcommon<br/># 在文件路径中包含 IP 地址<br/>VirtualDocumentRootIP /www/hosts/%0/docs<br/>VirtualScriptAliasIP /www/hosts/%0/cgi-bin<br/>二、使用 mod_rewrite<br/>1. 使用 mod_rewrite 实现简单的动态虚拟主机<br/># 从 Host: 头获取服务器名字<br/>UseCanonicalName Off<br/># 可分割的日志<br/>LogFormat "%&#123;Host&#125;i %h %l %u %t &#92;"%r&#92;" %s %b" vcommon<br/>CustomLog logs/access_log vcommon<br/># ExecCGI is needed here because we can't force<br/># CGI execution in the way that ScriptAlias does<br/>Options FollowSymLinks ExecCGI<br/># 接下来是关键部分<br/>RewriteEngine On<br/># a ServerName derived from a Host: header may be any case at all RewriteMap lowercase int:tolower<br/>## 首先处理普通文档:<br/># 允许变名 /icons/ 起作用 - 其他变名类同<br/>RewriteCond %&#123;REQUEST_URI&#125; !^/icons/<br/># 允许 CGIs<br/>RewriteCond %&#123;REQUEST_URI&#125; !^/cgi-bin/<br/># 开始“变戏法”<br/>RewriteRule ^/(.*)$ /www/hosts/$&#123;lowercase:%&#123;SERVER_NAME&#125;&#125;/docs/$1<br/>## 现在处理 CGIs - 我们需要强制使用一个 MIME 类型<br/>RewriteCond %&#123;REQUEST_URI&#125; ^/cgi-bin/<br/>RewriteRule ^/(.*)$ /www/hosts/$&#123;lowercase:%&#123;SERVER_NAME&#125;&#125;/cgi-bin/$1 [T=application/x-httpd-cgi]<br/># 好了！<br/>2. 使用独立的虚拟主机配置文件 vhost.map<br/>vhost.map 文件包含了类似下面的内容:<br/>www.customer-1.com /www/customers/1<br/>www.customer-2.com /www/customers/2<br/># ...<br/>www.customer-N.com /www/customers/N<br/>http.conf 包含了:<br/>RewriteEngine on<br/>RewriteMap lowercase int:tolower<br/># 定义映像文件<br/>RewriteMap vhost txt:/www/conf/vhost.map<br/># 和上面的例子一样，处理变名<br/>RewriteCond %&#123;REQUEST_URI&#125; !^/icons/<br/>RewriteCond %&#123;REQUEST_URI&#125; !^/cgi-bin/<br/>RewriteCond $&#123;lowercase:%&#123;SERVER_NAME&#125;&#125; ^(.+)$<br/># 这里做基于文件的重新映射<br/>RewriteCond $&#123;vhost:%1&#125; ^(/.*)$<br/>RewriteRule ^/(.*)$ %1/docs/$1<br/>RewriteCond %&#123;REQUEST_URI&#125; ^/cgi-bin/<br/>RewriteCond $&#123;lowercase:%&#123;SERVER_NAME&#125;&#125; ^(.+)$<br/>RewriteCond $&#123;vhost:%1&#125; ^(/.*)$<br/>RewriteRule ^/(.*)$ %1/cgi-bin/$1<br/><br/><br/>阿川网络 - 领先的IT技术&网络技术学习交流平台 - www.achuan.net <br/>Tags - <a href="http://www.yuan-chuang.cc/go.php/tags/%25E5%259F%259F%25E5%2590%258D%25E6%25B3%259B%25E8%25A7%25A3%25E6%259E%2590/" rel="tag">域名泛解析</a>
]]>
</description>
</item><item>
<link>http://www.yuan-chuang.cc/read.php/82.htm#blogcomment17</link>
<title><![CDATA[[评论] apache域名泛解析]]></title> 
<author>apache &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 23 Jan 2009 05:17:28 +0000</pubDate> 
<guid>http://www.yuan-chuang.cc/read.php/82.htm#blogcomment17</guid> 
<description>
<![CDATA[ 
	apache 域名
]]>
</description>
</item><item>
<link>http://www.yuan-chuang.cc/read.php/82.htm#blogcomment23</link>
<title><![CDATA[[评论] apache域名泛解析]]></title> 
<author>域名 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sat, 24 Jan 2009 06:19:23 +0000</pubDate> 
<guid>http://www.yuan-chuang.cc/read.php/82.htm#blogcomment23</guid> 
<description>
<![CDATA[ 
	apache 域名
]]>
</description>
</item>
</channel>
</rss>