让我告诉我们有关上下文的信息: 在服务器上,我安装了gitlab和apache;如果连接到http://mydomain.foo,我将所有配置配置为正常工作,它将显示我的gitlab应用程序。
我使用了以下虚拟主机配置:
<VirtualHost *:80>
ServerName mydomain.foo
DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public/
<Directory /opt/gitlab/embedded/service/gitlab-rails/public/>
Require all granted
</Directory>
ProxyPreserveHost On
AllowEncodedSlashes Off
<Location />
Order deny,allow
Allow from all
ProxyPassReverse http://127.0.0.1:8080
ProxyPassReverse http://mydomain.foo
</Location>
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]
</VirtualHost>
但是我想要的规则如下:
1)如果我连接到http://mydomain.foo,则Web浏览器中不应显示任何内容 2)但是,如果我连接到http://mydomain.foo/gitlab,则应该显示gitlab应用
有可能吗?如果可以的话,如何?
我尝试了以下操作,但没有成功:
使用以下方法更改重写器:
RewriteRule /gitlab(.*) http://127.0.0.1:8080/$1 [P,QSA]
但是它失败了:尽管如果我连接到http://mydomain.foo/gitlab时该应用程序是可见的,但是如果我单击Web应用程序上的任何链接,它将失败并显示未找到404。
编辑:附加信息:Gitlab在同一服务器上运行,并且与独角兽一起运行。