Apache 2.2 reescrever - Forçar todos os pedidos para index.html

4

Preciso forçar todas as solicitações, independentemente do que elas sejam para index.html. Infelizmente tudo o que tentei não funcionou corretamente.

O seguinte parece-me que deveria funcionar, mas não funciona. Meu entendimento é que ele está dizendo para qualquer coisa que não termine em /index.html para realmente solicitar o arquivo index.html.

Redirecionar 302! ^ / index.html link

Qualquer ajuda / esclarecimento seria muito apreciado.

    
por Daemon of Chaos 07.10.2010 / 03:14

3 respostas

10

Usando um .htaccess na pasta raiz, isso deve fazer o trabalho:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteRule . /index.html [R=302,L]

A condição e a regra é que, se a solicitação não corresponder a index.html, ela redirecionará o que for para ela

    
por 07.10.2010 / 05:19
4

A resposta do @prix é boa. Eu mesmo precisei adicionar condições para que os recursos normais (images & css) sejam exibidos como normais:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|png|swf|txt|svg|woff|ttf|eot)$
RewriteRule . index.html [L]
    
por 28.11.2017 / 21:26
0

Votei em outras respostas, mas no final elas não me ajudaram muito porque incluí um logotipo no arquivo index.html. Então aqui estão meus ajustes. Primeiro de tudo, os pré-requisitos.

Alterar

AllowOverride None

para

AllowOverride All

em

/etc/apache2/apache2.conf
…
<Directory /var/www/>

para ativar o arquivo .htaccess em /var/www/html (exemplo).

Crie ou edite o arquivo

/var/www/html/.htaccess

com conteúdo

RewriteEngine On

RewriteCond %{REQUEST_URI} ^.+/logo\.png$
RewriteRule . /logo.png [L]

RewriteCond %{REQUEST_URI} !^/index\.html$
RewriteCond %{REQUEST_URI} !^/logo\.png$
RewriteRule . /index.html [L]

Como você pode ver, não estou usando um redirecionamento. Isso significa que o caminho ou o URI digitado pelo usuário permanece o mesmo; no entanto, a página index.html é exibida com o logotipo.

    
por 03.11.2018 / 18:02