假设我有一个带有 ServerName 指令的虚拟主机,如下所示:
ServerName geekspeak.dev
在我的 hosts 文件中:
127.0.1.1 geekspeak.dev
现在,当我进入geekspeak.dev
浏览器时,我会被引导至在本地主机上运行的应用程序。很简单。
但是,如果我不这样做geekspeak.dev
,而是要求用户输入geekspeak.dev/foo
才能访问我的应用程序,该怎么办?是否有 apache 指令或其他技术可以让我实现这一点?
谢谢!
编辑
我尝试按照 Shi 的建议添加一个空的DocumentRoot
和一个Alias
,但没有成功。我想知道它充当代理是否与此有关?我已将我的虚拟主机粘贴在下面,也许有人能看出它有什么问题。
<VirtualHost *:80>
ServerName geekspeak.dev
DocumentRoot /var/www/foo
Alias /foo /var/www/foo
ProxyPreserveHost On
ProxyPass /excluded !
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>
我期望它到达我的应用程序,/
但它到达我的应用程序的时间是/foo
答案1
我的猜测是您DocumentRoot
在虚拟主机内部使用了指向您的应用程序的功能。
对于应用程序的“插入式”安装,我建议您简单地使用一个空目录作为DocumentRoot
,或者任何应该在那里可用的内容,然后使用Alias
指向您的应用程序。
Alias /foo /var/www/web-application