我已经在这里和google上阅读了有关重定向的所有主题,但是我是一名程序员,我无法理解。
我已经安装了Apache 2.2。 Web根目录为C:\\ Apache \\ htdocs。 我的网络管理员为我设置了一个本地域,该域指向使用Apache的服务器。 该域是myPhpApp.ourcompany.local。 这个子域有效,它显示了Apache“有效”页面。
现在,我在C:\\ Apache \\ htdocs \\ myPhpApp中拥有一个网站,并且我希望Apache将myPhpApp.ourcompany.local重定向到此目录。 浏览网站时,URL应始终保持myPhpApp.ourcompany.local的形式存在,例如:myPhpApp.ourcompany.local / index.php,myPhpApp.ourcompany.local / data.php等。
我不知道该怎么实现? Mod重写,虚拟主机,两者结合? 我有这个,这是行不通的:
<VirtualHost myphpapp.ourcompany.local>
DocumentRoot /myphpapp/
ServerName www.example1.com
RewriteEngine on
RewriteRule ^/$ /myphpapp/ [R]
</VirtualHost>
实际上我得到:
禁止的
您无权访问此服务器上的/ myphpapp /。 有人可以帮忙吗?
编辑也许我忘了提及:我不把它放到C:/ Apache / htdocs的www根目录中,因为我在那里有更多的应用程序。 我在thdocs中有3个目录:myphpapp,myoldapp,mytestapp。 作为目标,我希望有3个指向每个目录的子域。
首先,您不需要像这样简单的事情的重写规则。 我假设您需要遵循VirtualHost的定义
<VirtualHost *>
DocumentRoot /myphpapp/
ServerName myphpapp.ourcompany.local
</VirtualHost>
“ VirtualHost *”部分告诉Apache要监听哪个接口以及可选的端口。 ServerName告诉将使用哪个域名来标识此虚拟主机。
apache config中的文档根目录应指向您拥有应用程序的目录,在问题中您应指出的是
DocumentRoot C:\Apache\htdocs\myPhpApp
仅此而已。 重新启动或重新加载您的Apache,然后进行测试。
我认为这将是尼古拉和死党的答案的结合:
<VirtualHost *:80>
DocumentRoot "C:/Apache/htdocs/myPhpApp"
ServerName myPhpApp.ourcompany.local
</VirtualHost>