Apache进行Rewrite时需要注意根目录

Apache进行Rewrite时需要注意根目录

今天在做一个站点的企业黄页时,权衡之下觉得使用rewrite来实现每个企业的黄页比较的好.
      一个企业在管理界面填写信息之后,就在其相应目录生成相关文件.
演示如下:

[Copy to clipboard] [ - ]
CODE:
Rewriteengine on
rewritecond %{HTTP_HOST} ^[^.]+\.yp\.oursite\.cn$
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
rewriterule ^([^.]+)\.yp\.oursite\.cn(.*) "/$1$2"

ErrorLog logs/oursite-error_log
CustomLog logs/oursite-access_log common

DocumentRoot "/data/oursite/yp"
ServerName yp.oursite.cn

特别要注意的是:rewriterule ^([^.]+)\.yp\.oursite\.cn(.*) "/$1$2"
一开始的时候,我设置的是: "/data/oursite/yp/$1$2"
我想既然我指定的是/开始的目录,她就应该从/开始算目录啦.
结果nnnn测谁都不成功,仔细观察了error信息,总算发现,原来这个目录是要叠加
DocumentRoot的,也就是以DocumentRoot为基准目录.

我想好多人没有成功,可能这个原因也许拌了一下.
好,正是我需要找的东西.谢谢了.
不一定以documentroot 为基准目录

http://www.zeali.net/entry/405

这篇博客上的问题我碰到过,顺便搜索到这篇贴子里的。
如果在系统根目录下面有目录和documentroot下的目录同名时,这时就会rewrite到系统根目录下面,而不是到document下面的目录里去。前提是服务器级别配置(httpd.conf)里面的RewriteRule

细节可以看看这篇日志。