Como faço para o Apache servir uma única página estática, não importa o URL inserido?

5

Estou fazendo um anúncio bloqueando o servidor DNS que redireciona todos os domínios de anúncios para uma instância do Apache . Então, algo parecido com

www.addomain.com

é redirecionado para

dnsserver.localnetwork

No entanto, ocasionalmente me deparo com links mais parecidos com

www.addomain.com/some_ad

que é redirecionado para

dnsserver.localnetwork/some_ad

que nem sequer existe e, portanto, gera um erro 404 .

Eu esperava que houvesse alguma maneira de fazer o Apache servir index.html , independentemente da solicitação real. Caso contrário, se você tiver uma solução alternativa que não envolva o Apache, também estou disposto a isso.

    
por sayantankhan 18.06.2014 / 13:45

3 respostas

14

No Ubuntu, certifique-se de que mod_alias esteja ativado:

sudo a2enmod alias

Em sua diretiva VirtualHost, você pode usar AliasMatch .

Exemplo:

<VirtualHost *:80>
    DocumentRoot /path/to/your/host
    ServerName yourdomain.com
    DirectoryIndex index.html

    AliasMatch ^/(.*)$ /path/to/your/host/index.html

    <Directory "/path/to/your/host">
      Require all granted
    </Directory>
</VirtualHost>

Agora tudo é redirecionado para /index.html .

    
por rechengehirn 18.06.2014 / 14:49
9

Você precisa de uma regra de reescrita no seu arquivo .htaccess. Algo como o seguinte deve funcionar:

RewriteRule ^*$  http://www.addomain.com/index.html [R=301,NC,L]
    
por Tom Damon 18.06.2014 / 14:19
0

Outra opção mais simples seria alterar a página de erro 404 para a página estática que você deseja exibir para todas as páginas do seu site. Então, procure por esta linha (ou algo similar) nos seus arquivos de configuração do apache2:

ErrorDocument 404 /errors/not_found.html

Altere o "/errors/not_found.html" para: "/index.html"

    
por brfox 28.11.2016 / 20:24

Tags