LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 801|回复: 2

[求助]apache的rewrite实现虚拟主机功能

[复制链接]
发表于 2009-4-17 16:47:06 | 显示全部楼层 |阅读模式
apache的rewrite模块实现虚拟主机功能,主要便于php开发
我使用xampp做为开发环境,xampp为最新版本1.7.1
在/opt/lampp/htdocs/中写了.htaccess,内容如下
RewriteEngine On

RewriteCond   %{HTTP_HOST}                 ^www\.[^.]+\.host\.com$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule   ^www\.([^.]+)\.host\.com(.*) /home/$1$2

RewriteCond %{HTTP_HOST} ^[^.]+\.localhost$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^([^.]+)\.localhost(.*) $1/src/$2  

第一部分抄的官方手册,见:http://httpd.apache.org/docs/2.2 ... ide.html#uservhosts
第二部分是为了用与自己的开发情况改写的

/etc/hosts增加两行
127.0.0.1   xuanai.localhost
127.0.0.1   www.liguang.host.com

访问域名:
http://www.liguang.host.com/
出错, 运行的结果为:
[an error occurred while processing this directive] You don't have permission to access the requested object. It is either read-protected or not readable by the server. [an error occurred while processing this directive]


访问域名:
http://xuanai.localhost/
错误提示一样

google了很多,sir上关于此的文章基本都看了,原理如官方手册,但是错误,为何?
是xampp的设置导致了这个错误,还是apache官方手册写错了呢?

这个问题困扰了很久,希望能够解决,谢谢
发表于 2009-4-17 17:01:38 | 显示全部楼层
LZ是想配虚拟主机吧,这个功能应该不是rewrite干的事。

比如在apache上配个www.foo.com的(虚拟)主机,而你又想abc.foo.com 指向 www.foo.com/zone?user=abc,这样就可以用rewirte了。

呵呵,以上是我的愚见,不知道对不对!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-17 17:12:37 | 显示全部楼层
其实是觉得写vitualhost麻烦

平时开发,htdocs下N多项目文件夹

想要的效果是,我在htdocs下建个文件夹,如 ceshi
同时在hosts里面加入
127.0.0.1  ceshi.localhost
这样就可以以 http://ceshi.localhost 来访问项目文件夹,不需要访问 http://localhost/ceshi/  了

开发状态和服务器一样,不需要多余的路径,方便些

又觉得自己安装个虚拟主机管理系统麻烦,所以就想了这个办法,却搞不定,郁闷了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表