Redirecionar rotas não tratadas para / no apache 2.4 e no CentOS 7

1

Um servidor CentOS 7 hospeda um site de front-end público em example.com e também hospeda uma API de back-end em home.example.com . Os VirtualHost registros abaixo direcionam com êxito as solicitações de example.com para o front-end ao direcionar solicitações para o back-end para home.example.com . No entanto, solicitações de solicitações arbitrárias para caminhos em example.com recebem erros 404 .

What specific changes need to be made to the VirtualHost config below so that requests to example.com/anyPath get redirected to example.com?

Por exemplo, uma solicitação para o link que chega ao servidor deve ser retornada com example.com

Aqui está o VirtualHost :

<VirtualHost www.example.com:80>
    ServerName www.example.com
    ServerAlias example.com
    ErrorLog /var/log/httpd/example_com_error.log
    CustomLog /var/log/httpd/example_com_requests.log combined
    DocumentRoot /var/www/example/public_html
</VirtualHost>

<VirtualHost home.example.com:80>
    ServerName home.example.com
    ErrorLog /var/log/httpd/example_home_com_error.log
    CustomLog /var/log/httpd/example_home_com_requests.log combined
    ProxyPass / http://public.ip.for.api:1234/ connectiontimeout=5 timeout=30
</VirtualHost>
    
por CodeMed 13.07.2017 / 22:04

1 resposta

0

Se você quiser redirecionar, você pode adicioná-lo à sua primeira diretiva VirtualHost (usando o arquivo de índice apropriado).

RedirectMatch 302 ^/(?!index.html$).+ http://example.com

Basicamente, isso significa que você está combinando com algo que não corresponde exatamente a /index.html e é seguido por um ou mais caracteres.

Você também pode usar Rewrite para um efeito diferente. Não importa o que for solicitado, o Apache servirá o arquivo de índice.

RewriteEngine on
RewriteRule ^/.* index.html
    
por 14.07.2017 / 07:07