将子域重定向到子目录

时间:2011-02-16 10:57:49

标签: apache mod-rewrite redirect dns virtualhost

我已经阅读了这里的所有主题以及关于重定向的谷歌,但我是一名程序员而且我无法继续。

我安装了Apache 2.2。 Web根目录是C:\ Apache \ htdocs。我的网络管理员为我设置了一个本地域,该域指向Apache的服务器。域名是myPhpApp.ourcompany.local。这个子域工作,它显示Apache“It works”页面。

现在我在C:\ Apache \ htdocs \ myPhpApp中有一个网站,我希望Apache将myPhpApp.ourcompany.local重定向到这个目录。在浏览网站时,URL应保持为myPhpApp.ourcompany.local,例如:myPhpApp.ourcompany.local / index.php,myPhpApp.ourcompany.local / data.php等。

我不知道如何实现这一目标? Mod-rewrite,虚拟主机,两者的结合? 我有这个,这不起作用:

<VirtualHost myphpapp.ourcompany.local>
DocumentRoot /myphpapp/
ServerName www.example1.com

RewriteEngine on
RewriteRule   ^/$  /myphpapp/  [R]

</VirtualHost>

实际上我得到了:

  

禁止

     

您无权访问   / myphpapp /在这台服务器上。   有人可以帮忙吗?

修改 也许我忘了提到:我不把它放到www根,这是C:/ Apache / htdocs因为我有更多的应用程序在那里。 我在thdocs中有3个目录:myphpapp,myoldapp,mytestapp。作为目标,我希望有3个子域指向每个目录。

3 个答案:

答案 0 :(得分:0)

首先,你不需要为简单的事情重写规则。 我假设您需要遵循VirtualHost定义

<VirtualHost *>

    DocumentRoot /myphpapp/
    ServerName myphpapp.ourcompany.local

</VirtualHost>

“VirtualHost *”部分告诉Apache哪个接口和可选的端口要监听。 ServerName告知将使用哪个域名来标识此虚拟主机。

答案 1 :(得分:0)

你的apache配置中的文档根目录应该指向你所拥有应用程序的目录,你在问题中说明的应该是

DocumentRoot C:\Apache\htdocs\myPhpApp

就是这样。 重新启动或重新加载你的apache,然后进行测试。

答案 2 :(得分:0)

我认为这将是Nikola和cromestant的答案的组合:

<VirtualHost *:80>
    DocumentRoot "C:/Apache/htdocs/myPhpApp"
    ServerName myPhpApp.ourcompany.local
</VirtualHost>