Apache使用RewriteCond / RewriteRule重写

时间:2012-09-02 13:35:23

标签: apache mod-rewrite

我有两个测试网站http://foo/abchttp://foo/def

我正在尝试理解RewriteCond / RewriteRule进程以使用vhost来模拟alias / directory指令。

可以使用别名/指令块来提供“abc”,“def”站点。我试图弄清楚apache是​​否可以使用vhost块执行相同的操作,并结合RewriteCond / RewriteRule逻辑。

基本上,尝试使用RewriteCond / RewriteRule的组合来查看是否/如何使用vhost来为特定网站提供服务以限制显示的网站。

看起来像是

RewriteCond %{REQUEST_URI} ^/abc/
RewriteRule ^(.*)$          /var/www/html/abc [B,L,QSA]

会起作用,但浏览器会出错。

欢迎指针。

2 个答案:

答案 0 :(得分:0)

浏览器很可能会产生错误,因为目录/var(以及其中的所有内容)不是通过apache发布的。

答案 1 :(得分:0)

我希望我理解你的问题,你试图用ModRewrite模拟虚拟主机。

是的,当您的第一个RewriteCond检查域时,这是可能的:

RewriteCond %{HTTP_HOST} ^www\.domain1\.com$ [NC]

但请注意,这只适用于HTTP / 1.1,就像基于主机名而不是IP的虚拟主机一样。