Apache переписывает URL-адрес, чтобы добавить дополнительный путь в URL - PullRequest
0 голосов
/ 04 июня 2019

Позвольте мне рассказать нам о контексте: на сервере я установил gitlab и apache;Я настроил все для работы, если я подключусь к http://mydomain.foo, будет отображаться мое приложение gitlab.

Я использовал следующую конфигурацию vhost:

    <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, тогда в веб-браузере ничего не должно отображаться. 2) Но если я подключаюсь к http://mydomain.foo/gitlab, тогда приложение gitlab должнобудет отображаться

Возможно ли это?И если да, то как?

Я попробовал следующее, но безуспешно:

Изменить rewriterule следующим образом:

RewriteRule /gitlab(.*) http://127.0.0.1:8080/$1 [P,QSA]

Но это не удалось: хотя приложение видноесли я подключаюсь к http://mydomain.foo/gitlab, но если я нажму на любую ссылку в веб-приложении, то произойдет сбой и выведет 404 не найдено.

РЕДАКТИРОВАТЬ: Дополнительная информация: Gitlab работает на том же сервере и работаетс единорогом.

...