Remover barra dupla no endereço do gitlab [closed]

1

Eu configurei o gitlab no meu servidor pessoal e usei esta resposta e esta resposta (juntamente com alguma entrada de isso para fazê-lo funcionar com a minha instalação do Apache. Tudo funciona bem, quando eu vou para gitlab.example.com, eu vejo a interface do usuário do gitlab, pode criar contas e assim No entanto, quando inspecionei o URI para o qual fui encaminhado, é

https://gitlab.example.com//users/sign_in (observe as duas barras após o domínio). Isso não é realmente um problema, mas eu gostaria de saber por que isso é e como posso consertar isso - especialmente porque funciona da mesma maneira quando removo uma das barras do endereço. (Então https://gitlab.example.com/users/sign_in é exatamente o mesmo).

Na verdade, sou encaminhado duas vezes:

  • GET https://gitlab.example.com = > 301 Moved Permanently com Location:https://gitlab.example.com/
  • GET https://gitlab.example.com/ = > 302 Found com Location:https://gitlab.example.com//users/sign_in

Este é o meu arquivo de configuração do Apache ('/etc/apache2/sites-enabled/gitlab.conf):

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName gitlab.example.com
        ServerSignature Off

        ProxyPreserveHost On

        ProxyPassMatch ^(/[^/]+\.(html|png|ico|css|txt))$ !
        ProxyPass /assets !

        <Location />
                Order deny,allow
                Allow from all

                ProxyPassReverse http://127.0.0.1:8080
                ProxyPassReverse http://gitlab.example.com
        </Location>

        RewriteEngine on
        RewriteCond %{DOCUMENT_ROOT}/%(REQUEST_FILENAME} !-f
        RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]

        DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public

        SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Isso é um problema com o gitlab? Como posso contornar isso?

Observação: não tenho certeza de qual módulo está causando o comportamento de encaminhamento. Se precisar de outros arquivos de configuração, é só avisar.

    
por Henrik Ilgen 12.06.2016 / 15:04

1 resposta

1

Você pode querer tentar acrescentar uma barra à direita / ao ProxyPass URL de destino, ou seja, alterar

 ProxyPassReverse http://127.0.0.1:8080

em

 ProxyPassReverse http://127.0.0.1:8080/

desde que você esteja aplicando essas diretivas a um caminho que também termina com uma barra à direita / (ou apenas uma barra neste caso: <Location /> ) como o manual avisa:

If the first argument ends with a trailing /, the second argument should also end with a trailing /, and vice versa. Otherwise, the resulting requests to the backend may miss some needed slashes and do not deliver the expected results.

    
por 12.06.2016 / 15:22