使用RewriteCond/RewriteRule重写Apache
我有两个测试站点使用RewriteCond/RewriteRule重写Apache,apache,mod-rewrite,Apache,Mod Rewrite,我有两个测试站点http://foo/abc,http://foo/def 我试图理解使用vhost模拟alias/directory指令的RewriteCond/RewriteRule过程 可以使用别名/指令块为“abc”、“def”站点提供服务。我试图弄清楚apache是否可以使用vhost块,结合RewriteCond/RewriteRule逻辑来做同样的事情 基本上,尝试使用RewriteCond/RewriteRule组合来限制显示的站点,看看vhost是否/如何用于服务特定站点 看起
http://foo/abc
,http://foo/def
我试图理解使用vhost模拟alias/directory指令的RewriteCond
/RewriteRule
过程
可以使用别名/指令块为“abc”、“def”站点提供服务。我试图弄清楚apache是否可以使用vhost块,结合RewriteCond
/RewriteRule
逻辑来做同样的事情
基本上,尝试使用RewriteCond
/RewriteRule
组合来限制显示的站点,看看vhost是否/如何用于服务特定站点
看起来像
RewriteCond %{REQUEST_URI} ^/abc/
RewriteRule ^(.*)$ /var/www/html/abc [B,L,QSA]
可以,但浏览器在这方面出错了
指针是受欢迎的。浏览器很可能会产生错误,因为目录
/var
(以及其中的所有内容)不是通过apache发布的。我希望我正确理解了您的问题,您尝试使用ModRewrite模拟虚拟主机
是,这在您的第一次重写条件检查域时是可能的:
RewriteCond %{HTTP_HOST} ^www\.domain1\.com$ [NC]
但请注意,这只适用于HTTP/1.1,就像基于主机名而不是IP的虚拟主机一样。我不确定我的问题是否已经说清楚了。我会尽力解释的。基本上,我希望使用vhost(如果可能的话)查看url[http://foo/abc..],如果url有“/abc”,那么我希望vhost rewritecond/rules块继续并传递/提供页面。因此,rewritecond将查找“/abc”,如果有,rewriterules将设置正确的url/文件(类似于别名过程)。如果url中没有“abc”,vhost/rewrite逻辑将不会对url做任何事情。我有很多URL,我想知道vhost/rewrite是否可以这样使用。