apache添加虚拟主机及绑定域名免重启方案[转]

第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
第二步:打配置文件尾部加上
RewriteEngine on
RewriteMap lowercase int:tolower
#定义映像文件
RewriteMap vhost txt:/apache/vhost/vhost.map
#处理变名
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
#这里做基于文件的重新映射
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1

注意:vhost.map文件是域名和空间映像的文件,格式如下: www.abc.com  /vhostusr/www.abc.com
(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)
第三步:保存配置文件,重启apache,以后建立域名时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~

XML/HTML代码
  1. <html>  
  2. <head>  
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
  4. <meta http-equiv="Content-Style-Type" content="text/css">  
  5. <link rel="top" href="index.cgi" title="" />  
  6. <link rel="search" href="search.php" title="" />  
  7. <link rel="help" href="faq.php" title="" />  
  8. <link rel="author" href="memberlist.php" title="" />  
  9.   
  10. <title>注册 – youname.sun126.com</title>  
  11.   
  12. <style type="text/css">  
  13. <!–  
  14. body {  
  15.         background-color: #FFFFFF;  
  16.         scrollbar-face-color: #DEE3E7;  
  17.         scrollbar-highlight-color: #FFFFFF;  
  18.         scrollbar-shadow-color: #DEE3E7;  
  19.         scrollbar-3dlight-color: #D1D7DC;  
  20.         scrollbar-arrow-color:  #;  
  21.         scrollbar-track-color: #EFEFEF;  
  22.         scrollbar-darkshadow-color: #98AAB1;  
  23. }  
  24. font,th,td,p { font-family: ‘song’,Verdana }  
  25. a:link,a:active,a:visited { color : #; }  
  26. a:hover                { text-decoration: underline; color : #DD6900; }  
  27. hr        { height: 0px; border: solid #D1D7DC 0px; border-top-width: 1px;}  
  28. .bodyline        { background-color: #FFFFFF; border: 1px #98AAB1 solid; }  
  29. .forumline        { background-color: #000000; border: 0px #9898ba solid; }  
  30. td.row1        { background-color: #f0f3fa; }  
  31. td.row2        { background-color: #fafbfc; }  
  32. td.row3        { background-color: #D1D7DC; }  
  33. td.rowpic {  
  34.                 background-color: #D1D9E2;  
  35.                 background-repeat: repeat-y;  
  36. }  
  37. th        {  
  38.         color: #333333; font-size: 12px; font-weight : bold;  
  39.         background-color: #9898BA; height: 25px;  
  40.   
  41. td.cat,td.catHead,td.catSides,td.catLeft,td.catRight,td.catBottom {  
  42.                         background-color:#d1d9e2; border: #9898ba; border-style: solid; height: 28px;  
  43. }  
  44.   
  45. td.cat,td.catHead,td.catBottom {  
  46.         height: 29px;  
  47.         border-width: 0px 0px 0px 0px;  
  48. }  
  49. th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR {  
  50.         font-weight: bold; border: #FFFFFF; border-style: solid; height: 28px;  
  51. }  
  52. td.row3Right,td.spaceRow {  
  53.         background-color: #D1D7DC; border: #9898ba; border-style: solid;  
  54. }  
  55.   
  56. th.thHead,td.catHead { font-size: 13px; border-width: 1px 1px 0px 1px; }  
  57. th.thSides,td.catSides,td.spaceRow         { border-width: 0px 1px 0px 1px; }  
  58. th.thRight,td.catRight,td.row3Right         { border-width: 0px 1px 0px 0px; }  
  59. th.thLeft,td.catLeft          { border-width: 0px 0px 0px 1px; }  
  60. th.thBottom,td.catBottom  { border-width: 0px 1px 1px 1px; }  
  61. th.thTop         { border-width: 1px 0px 0px 0px; }  
  62. th.thCornerL { border-width: 1px 0px 0px 1px; }  
  63. th.thCornerR { border-width: 1px 1px 0px 0px; }  
  64. .maintitle        {  
  65.         font-weight: bold; font-size: 22px; font-family: "’song’,Verdana",’song’,Verdana;  
  66.         text-decoration: none; line-height : 120%; color : #;  
  67. }  
  68. .gen { font-size : 13px; }  
  69. .genmed { font-size : 12px; }  
  70. .gensmall { font-size : 12px; }  
  71. .gen,.genmed,.gensmall { color : #; }  
  72. a.gen,a.genmed,a.gensmall { color: #; text-decoration: none; }  
  73. a.gen:hover,a.genmed:hover,a.gensmall:hover        { color: #DD6900; text-decoration: underline; }  
  74.   
  75. /* The register, login, search etc links at the top of the page */  
  76. .mainmenu                { font-size : 12px; color : # }  
  77. a.mainmenu                { text-decoration: none; color : #;  }  
  78. a.mainmenu:hover{ text-decoration: underline; color : #DD6900; }  
  79.   
  80. /* Forum category titles */  
  81. .cattitle                { font-weight: bold; font-size: 13px ; letter-spacing: 1px; color : #}  
  82. a.cattitle                { text-decoration: none; color : #; }  
  83. a.cattitle:hover{ text-decoration: underline; }  
  84.   
  85. /* Forum title: Text and link to the forums used in: index.cgi */  
  86. .forumlink                { font-weight: bold; font-size: 13px; color : #; }  
  87. a.forumlink         { text-decoration: none; color : #; }  
  88. a.forumlink:hover{ text-decoration: underline; color : #DD6900; }  
  89.   
  90. /* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */  
  91. .nav                        { font-weight: bold; font-size: 12px; color : #;}  
  92. a.nav                        { text-decoration: none; color : #; }  
  93. a.nav:hover                { text-decoration: underline; }  
  94.   
  95. /* titles for the topics: could specify viewed link colour too */  
  96. .topictitle       {font-size: 12px; color : #; }  
  97. h1,h2       { font-weight: bold; font-size: 12px; color : #; }  
  98. a.topictitle:link   { text-decoration: none; color : #; }  
  99. a.topictitle:visited { text-decoration: none; color : #333333; }  
  100. a.topictitle:hover        { text-decoration: underline; color : #DD6900; }  
  101.   
  102. /* Name of poster in viewmsg.php and viewtopic.php and other places */  
  103. .name                        { font-size : 12px; color : #;}  
  104.   
  105. /* Location, number of posts, post date etc */  
  106. .postdetails                { font-size : 12px; color : #; }  
  107.   
  108. /* The content of the posts (body of text) */  
  109. .postbody { font-size : 13px; line-height: 18px}  
  110. a.postlink:link        { text-decoration: none; color : # }  
  111. a.postlink:visited { text-decoration: none; color : #333333; }  
  112. a.postlink:hover { text-decoration: underline; color : #DD6900}  
  113.   
  114. /* Quote & Code blocks */  
  115. .code {  
  116.         font-family: ‘song’,Verdana; font-size: 12px; color: #006600;  
  117.         background-color: #FAFAFA; border: #D1D7DC; border-style: solid;  
  118.         border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px  
  119. }  
  120.   
  121. .quote {  
  122.         font-family: ‘song’,Verdana; font-size: 12px; color: #444444; line-height: 125%;  
  123.         background-color: #FAFAFA; border: #D1D7DC; border-style: solid;  
  124.         border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px  
  125. }  
  126.   
  127. /* Copyright and bottom info */  
  128. .copyright                { font-size: 12px; font-family: ‘song’,Verdana; color: #444444; letter-spacing: -1px;}  
  129. a.copyright                { color: #444444; text-decoration: none;}  
  130. a.copyright:hover { color: #; text-decoration: underline;}  
  131.   
  132. /* Form elements */  
  133. input,textarea, select {  
  134.         color : #;  
  135.         font: normal 12px ‘song’,Verdana;  
  136.         border-color : #;  
  137. }  
  138.   
  139. /* The text input fields background colour */  
  140. input.post, textarea.post, select {  
  141.         background-color : #FFFFFF;  
  142. }  
  143.   
  144. input { text-indent : 2px; }  
  145.   
  146. /* The buttons used for bbCode styling in message post */  
  147. input.button {  
  148.         background-color : #EFEFEF;  
  149.         color : #;  
  150.         font-size: 12px; font-family: ‘song’,Verdana;  
  151. }  
  152.   
  153. /* The main submit button option */  
  154. input.mainoption {  
  155.         background-color : #FAFAFA;  
  156.         font-weight : bold;  
  157. }  
  158.   
  159. /* None-bold submit button */  
  160. input.liteoption {  
  161.         background-color : #FAFAFA;  
  162.         font-weight : normal;  
  163. }  
  164. >  
  165. </style>  
  166. </head>  
  167. <body  bgcolor="#FFFFFF" text="#" link="#" vlink="#333333" />  
  168. <a name="top"></a>  
  169.   
  170. <!–栏目条–>  
  171. <style type=text/css>  
  172. A.title1:link {font-size:17.9px;font-family:arial;font-weight:bold;text-decoration:none;color:#ffffff;}  
  173. A.title1:visited {font-size:17.9px;font-family:arial;font-weight:bold;text-decoration:none;color:#ffffff;}  
  174. A.title1:active {font-size:17.9px;font-family:arial;font-weight:bold;text-decoration:none;color:#ffffff;}  
  175. A.title1:hover {font-size:17.9px;font-family:arial;font-weight:bold;text-decoration:none;color:#ffffff;}  
  176. A.title2:link {text-decoration:none;color:#000000;font-size:12px}  
  177. A.title2:visited {text-decoration:none;color:#000000;font-size:12px}  
  178. A.title2:active {text-decoration:none;color:#ff0000;font-size:12px}  
  179. A.title2:hover {text-decoration:none;color:#ff0000;font-size:12px}  
  180. </style>  
  181. <?php  
  182. if (empty($HTTP_POST_VARS[reg])) {  
  183.   
  184.     ?>  
  185. <form action="<?=$PHP_SELF?>" enctype="multipart/form-data" method="post">  
  186. <table border="0" cellpadding="3" cellspacing="1" width="95%" align=center class="forumline">  
  187.         <tr>  
  188.                 <th class="thHead" colspan="2" height="25" valign="middle"> <a href=http://www.sun126.com>精彩奇讯科技虚拟主机自助申请系统</a> 请填写注册信息</th>  
  189.         </tr>  
  190.         <tr>  
  191.                 <td class="row2" colspan="2"><span class="gensmall">请输入在本服务器新增的域名:</span></td>  
  192.         </tr>  
  193.         <tr>  
  194.                 <td class="row1" width="20%"><span class="gen">域名名称:   http://</span>& lt;/td>  
  195.                 <td class="row2"><input type="text" class="post" style="width:100px" name="domain" size="10" maxlength="25"><span class="gen"><font color=red>.sun126.com</font></span></td>  
  196.         </tr>  
  197.                 <tr>  
  198.                 <td  class="row1" colspan="2" align="center" height="28">  
  199. <input type="hidden" name="dateformat" value="Y-m-d H:m" maxlength="14" class="post" />  
  200.                 <input type="hidden" name="reg" value="1" /><input type="submit" name="submit" value="发送" class="mainoption" />  <input type="reset" value="重设" name="reset" class="liteoption" /></td>  
  201.         </tr>  
  202. </table>  
  203. </form>  
  204. </center>  
  205. </body>  
  206. </html>  
  207. <?php }  
  208. ?>  
  209. <?php  
  210.   
  211.   
  212. if ($HTTP_POST_VARS[reg]) {  
  213. for($i=0;$i<9;$i++){  
  214. $char1=chr(rand(97,122));  
  215. $chara.=$char1;  
  216. }  
  217.     $domain = $HTTP_POST_VARS[domain] . ".sun126.com   /" . $HTTP_POST_VARS[domain];  
  218.     // 检查并创建目录开始*******************************  
  219.     if (is_dir(‘d:/vhostuser/user_’.$chara.’_’.$HTTP_POST_VARS[domain])) {  
  220.         $domain = "http://" . $domain;  
  221.         echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" width=\"95%\" align=center class=\"forumline\"><tr>  
  222.                 <td class=\"row2\" colspan=\"2\"><span class=\"gensmall\">此域名已经使用,请更换~~<a href=$PHP_SELF>返回</a></span></td>  
  223.         </tr>  
  224.         <tr>  
  225.                 <td class=\"row2\" colspan=\"2\"><span class=\"gensmall\">      <a href=$domain target=_blank><FONT COLOR=BLUE><u>点击查看已开空间</u></FONT></a>< /span></td>  
  226.         </tr></table>";  
  227.         exit;  
  228.     } else {  
  229.         mkdir(‘d:/vhostuser/user_’.$chara.’_’.$HTTP_POST_VARS[domain]);  
  230.     }  
  231.   
  232.     $HTTP_POST_VARS[reg] = "0";  
  233.     $domain = "http://" . $domain;  
  234.     echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" width=\"95%\" align=center class=\"forumline\"><tr>  
  235.                 <td class=\"row2\" colspan=\"2\"><span class=\"gensmall\">空间开设成空!~~<a href=$PHP_SELF>返回</a></span><span class=\"gensmall\">    <a href=$domain target=_blank><FONT COLOR=BLUE>点击查看已开空间</FONT></a>  <a href=http://www.sun126.com>< 联系我们 – 精彩奇讯科技></a> </span></td>  
  236.         </tr></table>";  
  237. }  
  238.   
  239. ?>