Como configurar o Apache para redirecionar para a porta ServerName?

Como configurar o Apache para redirecionar para a porta ServerName?

Acabei de fazer uma nova instalação do Ubuntu do apache2 e do haproxy. O Haproxy escuta na porta 80, o Apache na 3080, este último oculto do lado de fora.

Meu problema é que ao usar um nome de pasta sem barra final, por exemplo, example.com/some/foldero apache redireciona automaticamente para o mesmo endereço com uma barra, mas também para a porta incorreta example.com:3080/some/folder/!

Os documentos do Apache sugerem que meu problema está na configuração CanonicalName/Port, mas qualquer combinação deles parece não funcionar. O que posso estar entendendo mal?

Meu host virtual:

<VirtualHost *:3080>

    ServerName http://example.com:80
    UseCanonicalName On
    UseCanonicalPhysicalPort On

    DirectoryIndex index.php index.html
    DocumentRoot /var/www/main

    <Directory /var/www/main>
        Options -Indexes
        Options -FollowSymLinks
        AllowOverride All

        <Files ~'^\.'>
            Order allow,deny
            Deny from all
            Satisfy all
        </Files>
    </Directory>
</VirtualHost>

Responder1

Não use nenhum dos dois;

UseCanonicalName Off
UseCanonicalPhysicalPort Off

O HAProxy (normalmente) não mexe no Hostcabeçalho enviado, portanto, esta configuração deve ter os redirecionamentos gerados construídos com o Locationcabeçalho correto. Se isso não ajudar, forneça o Locationcabeçalho exato que está sendo enviado na resposta.

A propósito, você ServerNamepode ser simplificado e provavelmente não deve ter uma porta na qual seu vhost não esteja escutando:

ServerName example.com

informação relacionada