使用Apache的URL Rewrite配置多用户虚拟服务器

2009-05-13 05:31:17来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


使用Apache的URL Rewrite配置多用户虚拟服务器
前两天为了让Sylvan的用户能够更方便的记忆自己的个人空间的地址,研究了一下Apache的URL Rewrite功能,实现了每个用户可以把自己的用户名作为二级域名的虚拟主机的设定。
其实,之前也用过URL Rewrite模块,只不过只是用来转换URL中传入的参数的。这次用它来做虚拟主机,其实原理是一样的。
先说一下目的。我想做到的是用户在浏览器中输入类似 http://wells.osall.com/test.php?a=1&b=2 这样的URL地址时,把蓝色部分的用户名作为一个参数并转到页面在服务器上的真正的实际地址 /path/to/file/test.php?un=wells&a=1&b=2 ,并且要让用户在浏览器中看到的URL地址不发生改变。
要实现这个功能,首先要在DNS服务器上打开域名的泛域名解析(自己做或者找域名服务商做)。比如,我就把 *.osall.net 和 *.osall.com全部解析到了我的这台Linux Server上。
然后,看一下我的Apache中关于*.osall.com的虚拟主机的设定。
  • #*.com,*.osall.net
  • *:80>
  •     ServerAdmin webmaster@osall.com
  •     DocumentRoot /home/www/www.osall.com
  •     ServerName dns.osall.com
  •     ServerAlias dns.osall.net osall.com osall.net *.osall.com *.osall.net
  •     CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/osa/a_wosa_log.%Y%m%d 86400" common
  •     ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/osa/e_wosa_log.%Y%m%d 86400"
  •     /home/www/www.osall.com>
  •           AllowOverride None
  •           Order deny,allow
  •           #AddDefaultCharset GB2312
  •    
  •     mod_rewrite.c>
  •         RewriteEngine on
  •         RewriteCond %{HTTP_HOST}        ^[^.]+\.osall\.(com|net)$
  •         RewriteRule ^(.+)               %{HTTP_HOST}$1  [C]
  •         RewriteRule ^([^.]+)\.osall\.(com|net)(.*)$ /home/www/www.osall.com/sylvan$3?un=$1&%{QUERY_STRING}      [L]
  •    
  • 标签:

    版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

  • 上一篇:proftpd 安装手记

    下一篇:关于 apache url rewrite 的问题