Apache重写规则,如何将url转发到目录但不更改url地址

Apache重写规则,如何将url转发到目录但不更改url地址,apache,Apache,我的站点设置如下: mysite.com/cheese/home mysite.com/cheese/about-us mysite.com/fruit/home mysite.com/fruit/about-us 奶酪和水果是完全不同的部位。我有两个领域: www.cheese.com www.fruit.com 所以我需要告诉apache,当用户转到www.cheese.comeshowmysite.com/cheese/fruit时,我不希望它重定向到那里。我对mod_rewrite

我的站点设置如下:

mysite.com/cheese/home
mysite.com/cheese/about-us

mysite.com/fruit/home
mysite.com/fruit/about-us
奶酪和水果是完全不同的部位。我有两个领域:

www.cheese.com
www.fruit.com
所以我需要告诉apache,当用户转到
www.cheese.come
show
mysite.com/cheese/fruit
时,我不希望它重定向到那里。我对mod_rewrite做了很多研究,但这似乎并没有达到我需要的效果。

针对不同的域。 如果您谈论的是不同的域,您可能需要一个而不是重定向或别名。每个vhost都有另一个DocumentRoot

# Ensure that Apache listens on port 80
 Listen 80

 # Listen for virtual host requests on all IP addresses
 NameVirtualHost *:80

 <VirtualHost *:80>
 DocumentRoot /www/cheese
 ServerName www.cheese.com
 </VirtualHost>

 <VirtualHost *:80>
 DocumentRoot /www/fruit
 ServerName www.fruit.com
 </VirtualHost>
#确保Apache侦听端口80
听80
#侦听所有IP地址上的虚拟主机请求
名称虚拟主机*:80
DocumentRoot/www/cheese
服务器名www.cheese.com
DocumentRoot/www/fruit
服务器名www.fruit.com
对于相同的域: 不要使用重写规则。使用别名[请参阅(或符号链接)

重写规则向浏览器发送响应,告诉它去获取另一个URL。别名只是去其他地方查找文档,并将其提供给浏览器(而不告诉它在其他地方找到它)


别名也支持正则表达式,使用AliasMatch指令。

这真的很好,我已经研究了mod_alias,它按照我的需要工作,除了需要将它映射到url时必须将其映射到文件夹(语法:alias url path file path | directory path)如果有意义的话,我需要一种方法将一个url与另一个url别名。这就是vhost发挥作用的地方。您将
www.cheese.com
设置为您的
mysite.com/cheese/home
,并将
www.fruit.com
设置为
mysite.com/fruit/home
。我已经查看了上面的示例,但仍然无法理解。我该怎么做“将www.cheese.com设置为您的mysite.com/cheese/home”?因为我只能看到它指向一个目录。我可以补充一点,这是动态的,文件结构中不存在www/mysite/fruit。当您访问url时,它会自动建立。因此,我需要将一个url与另一个url进行别名/映射。