Apache重写URL,以便在URL中附加额外的路径

时间:2019-06-04 14:59:42

标签: apache mod-rewrite url-rewriting gitlab

让我告诉我们有关上下文的信息: 在服务器上,我安装了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在同一服务器上运行,并且与独角兽一起运行。

0 个答案:

没有答案