2010-07-26 78 views
0

我一直在试图让一些RewriteRules正常工作,并且在仅用于一台主机但不是多个时成功。mod_rewrite docroot依赖于子文件夹名称的多个子文件夹

我想要“http://preview.domain.com”指向“http://preview.domain.com/dir1”或“http://preview.domain.com/dir2”等。Dir1和Dir2是因为它们包含指向真实域的ProxyPass。这是我目前的:

RewriteCond %{REQUEST_URI} !/dir1 
RewriteRule ^(.*)$ /dir$1 [R] 

<Location /dir1> 
ProxyPass http://dir1.com 
</Location> 

我不能让dir2规则工作在旁边的工作。如果可能的话,我希望能够做到这一点,因为它们大约有70个文件夹,并且正在增长。 “http://preview.domain.com”本质上是一个域,指向我的开发服务器显示dev内容而不是prod内容,而无需修改网站代码。有谁可以提供帮助吗?

回答

0

我不完全明白你想要做什么。如果你想http://preview.domain.com/nameofsite/path映射到http://nameofsite.com/path(其中nameofsite是无论域名您使用的是占位符),你可以使用

RewriteRule ^/([^/]+)(/.*)$ http://$1.com$2 [P] 

,然后你不会有任何需要的Location块。

+0

不知道如何做一个答复,但我只是想澄清问题。使用你的重写给我的链接404。不知道我是否只需要一个适当的RewriteCond或什么。我上面的第一次重写对单个站点代理正常工作,但我想再添加几个,我不确定重写规则需要如何工作。起初,我添加了与第一个类似的第二个重写块,只是指向一个不同的站点,当我尝试在“http://preview.domain.com/dir2”访问它时,它将其重写为“http:// preview.domain.com/dir2/dir1“并失败。 – 2010-07-28 04:49:55

相关问题